如果我不上传文件,如何从npm的multer获取请求的正文?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果我不上传文件,如何从npm的multer获取请求的正文?相关的知识,希望对你有一定的参考价值。
我有一个使用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
});
}
问题在于,并非所有路由都需要上传文件。我是否需要浪费CPU为每条路线调用upload.single()
才能进入身体? upload.single('')
最终没有上传任何文件,但它仍然是花在主线程上的宝贵时间。
似乎upload.single()
等待回调,所以它可能没有我做的那么大,但我不喜欢在我不需要时调用函数。
有没有办法打电话给upload.single()
,或者我只是做了一个比实际更大的交易呢?
答案
对于纯文本的多部分表单,您可以使用任何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只会为你解析表单的文本字段,没有文件
以上是关于如果我不上传文件,如何从npm的multer获取请求的正文?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Multer 将带有 fetch 的图像上传到 Express