0

在您浪费任何时间之前请注意,这是一个参考问题,以防万一有人需要它。但请随时纠正我:)

所以,我尝试使用强大的(我知道它bodyParser与 express 非常相似,我应该使用 body parser !)。它根本不起作用的问题。

这是我的代码的简单部分(相关部分)

    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它不起作用。

发出的唯一事件是 progress 。

4

2 回答 2

2

如果你使用app.use(express.bodyParser()) 相当于:

app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());

多部分使用强大,所以事件不会触发,你可以删除app.use(express.multipart());然后你可以使用强大的对象。

于 2013-09-29T10:12:47.520 回答
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();
});
于 2013-08-29T19:02:30.743 回答