如果我不上传文件,如何从npm的multer获取请求的正文?

问题描述 投票:2回答:1

我有一个使用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(),或者我只是做了一个比实际更大的交易呢?

node.js express file-upload multer
1个回答
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只会为你解析表单的文本字段,没有文件

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.