Busboy 没有触发 'field' 事件

Busboy doesn't fire 'field' event

我得到了 formData 的文件事件,但 busboy 没有触发其他字段事件。有人可以看一下吗?我正在使用最新版本的 node 和 busboy。 formData 通过 xmlhttprequest 发布。我想添加一些其他字段,而不仅仅是文件。

服务员:

var Busboy = require('busboy'),
    path = require('path'),
    Connection = require('ssh2'),
    fs = require('fs');

module.exports = {
    uploadFile: function(req,res) {

        var conn = new Connection();
        conn.on('ready', function() {
            console.log('Connection :: ready');
            conn.sftp(function(err, sftp) {
                var busboy = new Busboy({ headers: req.headers });
                req.pipe(busboy);

                busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
                    //works fine
                });
                busboy.on('ident', function(fieldname, val) {
                    // doesn't get called
                });
                busboy.on('finish', function() {
                    res.status(200).end();
                    console.log('Done parsing form!');
                });

            });
        }).connect({
            //options
        });

        conn.on('error', function (err) {
            console.log( "- connection error: %s", err );
            process.exit( 1 );
        });


    }
}

表格数据:

        var file = $scope.files[0];
        var fd = new FormData();
        fd.append('file', file);
        fd.append('ident', $routeParams.id);
        if (file.type!="application/pdf"){
            mvNotifier.error("Nur PDF Dateien sind akzeptiert.");
            return true;
        }       
        var xmlhttp;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open('POST', '/api/upload/file', true);
        xmlhttp.onload = function(response) {
             //gets called
        }
        xmlhttp.send(fd);

不是

busboy.on('ident', function(fieldname, val) {}));

你一定要试试:

busboy.on('field', function(fieldname, val) {
             /*get all non-file field here*/ });