我有一个使用express
的节点服务器。
我最初使用的是body-parser
,但这不允许上传文件。所以,我切换到multer
(与express
最简单的集成)。但是,为了获得任何req
(特别是req.body
),这是我的代码:
var multer = require('multer');
var upload = multer({ dest : 'uploads/' });
server.all('/example', function (req, res, next) {
var up = upload.single('photo')
up(req, res, function(err) {
console.log(req.body); // I can finally access req.body
});
}
问题在于,并非所有路由都需要上传文件。我是否需要在为每条路线调用upload.single()
时浪费CPU才能访问正文? upload.single('')
最终没有上传任何文件,但它仍然是花在主线程上的宝贵时间。
似乎upload.single()
等待回调,所以它可能没有我做的那么大,但我不喜欢在不需要时调用函数。< / p>
有没有办法打电话给upload.single()
,还是我只是做了一个比实际更大的交易呢?
答案 0 :(得分:1)
对于纯文字的多部分表单,您可以使用任何multer方法,.single()
,.array()
,fields()
例如使用.array()
var multer = require('multer');
var upload = multer({ dest : 'uploads/' });
server.all('/example', upload.array(), function (req, res, next) {
console.log(req.body);
});
使用哪个并不重要,只要在没有参数的情况下调用它,Multer只会为你解析表单的文本字段,没有文件