我正在尝试将2个文件上传到我的节点js服务器。我使用multer从请求中接收数据。这是我的终点:

        app.post('/testFile', imageUpload.fields([{name:'image',maxCount:1},{name:'image2',maxcount:1}]), function(req, res, next){
        res.sendStatus(201);
    });


这是我设置了multer的地方:

var somevariable= multer({
storage: multer.diskStorage({
  destination: (req, file, callback) => {
    var x= req.body.x;
    var y= req.body.y;
    var path = `./resources/pics/${x}/${y}`;
    fs.mkdirsSync(path);
    callback(null, path);
  },
  filename: (req, file, callback) => {
    callback(null, file.originalname);
  }
})
});


而且我有一些奇怪的行为。如果处理第一个图像,则同时收到x和y参数的“未定义”。但是,如果我的过程到达第二个图像,则可以在x和y变量中获取传递的值。有人可以向我解释为什么会这样吗?

最佳答案

请使用muster这样。

var storage = multer.diskStorage({
    destination: 'destinationPath'
});
var upload = multer({
    storage: storage
}).any();
upload(req, res, function(err) {
    if (err) {
        console.log(err);
        return res.end('Error');
    } else {
        // your code goes here
    }
}

关于javascript - Node js收到多个消息参数未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47225802/

10-16 21:09