javascript - 服务员没有触发完成事件

标签 javascript node.js express

我正在尝试将请求对象从我的路由传递到处理上传的 Controller ,

这是路线-

app.post('/upload/notes',auth.requiresApiLogin,function(req,res){
        upload.file(req,res);
});

这是具有导出文件方法的 Controller (upload.js)代码

var fs = require('fs'),
    uuid = require('node-uuid'),
    path = require('path'),
    Busboy = require('busboy');
exports.file = function(req, res) {
    var busboy = new Busboy({ headers: req.headers});
    busboy.on('file', function(fieldname, file, filename,transferEncoding,mimeType) {
        console.log("inside upload function");
        console.log(file);
    });
    busboy.on('field', function(fieldname, val, valTruncated,keyTruncated) {
        console.log("inside field function");
        console.log(fieldname);
    });
    busboy.on('finish',function(){
        console.log('finished');
    });
    req.pipe(busboy);
//
//    req.pipe(req.busboy);
//    req.busboy.on('file', function(fieldname, file, filename,transferEncoding,mimeType) {
//        var fName = uuid.v4();
//        console.log(filename);
//        var fileext = filename.substr(filename.lastIndexOf('.') + 1);
//
//        console.log(transferEncoding);
//        console.log(mimeType);
//        var filepath = path.normalize(__dirname + '/../../');
//        var fstream = fs.createWriteStream(filepath+'/server/uploads/'+fName+'.'+fileext);
//        file.pipe(fstream);
//        fstream.on('close', function () {
//            res.redirect('back');
//        });
//    });
};

所以,我看到字段和文件都被记录在控制台中,但没有触发完成事件。我还应该尝试什么?

最佳答案

您需要以某种方式使用file 流。出于测试目的,您可以通过在文件事件处理程序中添加 file.resume(); 来忽略数据。

关于javascript - 服务员没有触发完成事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24588408/

相关文章:

node.js - 参数必须是 nodejs 中的字符串

node.js - 如果包含在 sequelize 中找不到任何关系数据,则设置属性的空值

angularjs - ExpressJS 与 AngularJS 路由配对,链接上没有标签

node.js - python -i : run and enter interactive mode?的node.js模拟是什么

javascript - 未知的身份验证策略 "local"

javascript - 了解对对象字面量选项的函数调用

javascript - OpenTok 传入视频流附加到 body 底部

javascript - nodejs异步并行内部异步每个

javascript - 无法通过 jQuery 更改按钮文本

javascript - iOS 链接到独立 Web 应用程序