强大的解析回调不被调用,也没有错误

时间:2017-05-18 10:52:35

标签: node.js formidable

我使用强大的解析函数时遇到问题。在我的项目中,我使用httpsys(不是内置的http模块)来创建服务器(用于端口共享),然后我发送一个带有多部分表单数据的帖子请求(包括字符串和zip文件)。然后我想使用formidable来解析请求体。但是不调用解析函数回调。没有错误。我不使用Express应用程序,但我使用Express Router来路由我的请求。我已经使用错误处理程序来捕获错误,但它永远不会被调用(form.on(' error',function(err){console.log(err);});)。有人有同样的问题吗?请提前帮助我。

   // main.js
    var router = express.Router();
    router.use(function (req, res, next) {
    for (var i in req.headers) {
        req.headers[i] = querystring.unescape(req.headers[i]);
        req.headers[i] = req.headers[i].replace(/\+/g, "");
    }
    next();
   });
   //router.use(bodyParser());
    router.post('/TestServer/' + 'TestRequest', function(req, res) {
    testRequestHandler.execute(req, res);
    });
   var server = require('httpsys').http().createServer(router);
   var port = '80'; // or other port
   var listeningPort = 'http://localhost:' + port + '/TestServer/';
   server.listen(listeningPort );

   // In testRequestHandler
    var execute = function(req, res) {
    var form = new Formidable.IncomingForm();
    form.uploadDir = uploadDir.getPath();
    form.encoding = Constants.ENCODING_UTF8;
    form.on('file', function(name, file) {console.log('file='+file);});
    form.on('error', function(err) { console.log(err); }); // never be called
    form.on('aborted', function() { console.log('Aborted'); });
    form.parse(req, function(err, fields, files) {
        //todo test code
        console.log( "parse finished" );
    });
 }

0 个答案:

没有答案