快递& connect-busboy忽略了一些请求

时间:2014-08-14 10:20:44

标签: node.js express busboy

我使用connect-busboy和express:

var busboy = require('connect-busboy');

app.configure(function () {
    app.use(express.logger());
    app.use(busboy());
    app.use(bodyParser());
    app.use(function(err, req, res, next){
        res.send(500, 'error');
    });

并提出以下要求:

app.post('/save', function (req, res) { 
       console.log("Got request")
         try {
         console.log("I got it");
         req.pipe(req.busboy);
         var name = "";
         var start = "";
         var fstream;
        req.busboy.on('field', function (fieldname, val, fieldnameTruncated, valTruncated) { }


        req.busboy.on('file', function (fieldname, file) {
           //some code
        }

        req.busboy.on('error', function (error) {
                console.log("Error in uploading file with chunks: "  + error);
            // some code
         })
        req.busboy.on('finish', function () {
               fstream.on('close', function(){
                       //some code
    })
})

客户端向我发送了6个save命令请求。我得到2-6个请求不一致。

含义,Got request仅打印2次,但客户端发送请求的次数为6次。

当我删除app.use(busboy());行时,Express.app会收到6个请求(但由于req.busboy.on不起作用,我无法使用该功能。)

结论是app.use(busboy());忽略了来自客户端的一些请求,并且app.post未被触发。我该如何解决?

1 个答案:

答案 0 :(得分:0)

你应该做的一件事是删除app.use(bodyParser());,因为busboy已经在处理正文解析。

相关问题