在任何时候浪费之前:请注意,这是一个参考问题,以防有人需要它。但请随意纠正我:)
所以,我试图使用强大的(我知道它与bodyParser
非常相似,我应该使用身体解析器!)使用express。它根本不起作用的问题。
这是我的代码的简单部分(相关部分)
form.on('progress', function (bytesReceived, bytesExpected) {
console.log(bytesExpected);
console.log('progress ');
if (bytesReceived > options.maxPostSize) {
console.log('bla ');
req.connection.destroy();
}
}).on('end', finish).parse(req,function(err, fields, files) {
console.log(files);
});
现在,如果我尝试console.log
- > err , fields , or files
它不起作用。
正在发出的唯一事件就是进步。
答案 0 :(得分:2)
如果您使用app.use(express.bodyParser())
相当于:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
多部分使用强大的,因此事件不会触发,你可以删除app.use(express.multipart());
然后你可以使用强大的对象。
答案 1 :(得分:0)
问题是由parse
功能引起的。要解决此问题,您需要不使用bodyParser
。
所以我们假设我有一条路由/files
,它只回复一个帖子请求,然后你需要为这条路线禁用bodyParser
,如下所示:
app.use(function(req,res,next){
// important .. this will skip body parser to avoide issues with formidable
if((req.path == '/file' ||req.path == '/file/') &&req.method === 'POST'){
// GET , PUT , DELETE ,etc... will have bodyParser ^^^^^^^^^^^^^^^^^^^^^
return next();
}
express.bodyParser(req,res,next);
next();
});