1

私はエクスプレスでconnect-busboyを使用します:

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 request2 回しか出力されませんが、クライアントは 6 回の要求を送信します。

app.use(busboy());行を削除するとExpress.app、6 のリクエストが取得されます (ただし、機能が動作しないため、機能を使用できませreq.busboy.onん)。

結論はapp.use(busboy());、クライアントからのいくつかの要求を無視し、app.postは起動されないということです。どうすれば解決できますか?

4

1 に答える 1

0

app.use(bodyParser());バスボーイはすでにボディの解析を処理しているため、削除する必要があります。

于 2014-08-14T12:36:00.917 に答える