节点js接收未定义的多个消息参数

时间:2017-11-10 15:09:37

标签: javascript node.js parameters multer

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

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

这就是我设置嫁妆的地方:

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);
  }
})
});

我有一些奇怪的行为。如果我处理第一张图片,我会收到' undefined' x和y参数。但是如果我的进程到达第二个图像,我可以在x和y变量中获得传递的值。有人可以向我解释为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

请像这样使用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
    }
}