当我这样向我的网站发布请求时:
curl -F data=@data http://server:port/path
{"error":"req.file undefined"}
对于req.file未定义的情况,我得到了答案。查看我的代码:
var multer = require("multer");
var storage = multer.diskStorage({
//stuff
})
var upload = multer({ storage: storage })
router.post('/path', upload.single("data"), function(req, res, next){
console.log(req.file);
if(!req.file){
res.json({"error": "req.file undefined"});
return;
}
//dostuff
res.json({"error": "hurray"});
});
在我的服务器端,一切正常,输出为:
undefined
POST /path 200 1.535 ms - 15
POST /path 200 1.535 ms - 15
POST /path - - ms - -
POST /path - - ms - -
{ fieldname: 'data',
originalname: 'data.txt',
encoding: '7bit',
mimetype: 'text/plain',
destination: 'path/my-uploads',
filename: 'data-201899-1028283.txt',
path: 'path/my-uploads/data-201899-1028283.txt',
size: 38
}
因此,我看到在上传文件之前,console.log(req.file)
日志undefined
就是我在客户端curl端得到的答案,但是如何避免这种情况发生呢?
我使用multer 1.4.0
,其中onParseEnd
和onFileUploadComplete
被描述。