1

我将 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 个保存命令请求。我收到不一致的 2-6 个请求。

意思是,Got request只打印了 2 次,但客户端发送了 6 次请求。

当我删除该app.use(busboy());行时,Express.app获取 6 请求(但我无法使用该功能,因为req.busboy.on它不起作用)。

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

4

1 回答 1

0

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

于 2014-08-14T12:36:00.917 回答