formidable is not a function. (In ‘formidable({ multiples: !0 })’, ‘formidable’ is an instance of Object)
之前版本 (官网示例) :
import express from 'express';
import formidable from 'formidable';
const app = express();
app.get('/', (req, res) => {
res.send(`
<h2>With <code>"express"</code> npm package</h2>
<form action="/api/upload" enctype="multipart/form-data" method="post">
<div>Text field title: <input type="text" name="title" /></div>
<div>File: <input type="file" name="someExpressFiles" multiple="multiple" /></div>
<input type="submit" value="Upload" />
</form>
`);
});
app.post('/api/upload', (req, res, next) => {
const form = formidable({}); // 新版本需要修改这个地方
form.parse(req, (err, fields, files) => {
if (err) {
next(err);
return;
}
res.json({ fields, files });
});
});
app.listen(3000, () => {
console.log('Server listening on http://localhost:3000 ...');
});
新版本 (截止版本) : 3.5.1
app.post('/api/upload', (req, res, next) => {
// 创建 form 对象
const form = new formidable.IncomingForm({}); // 通过 new 来创建
// ...
});