我正在尝试将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/