Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js/Express文件通过Mongoose上传到GridFS_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js/Express文件通过Mongoose上传到GridFS

Node.js/Express文件通过Mongoose上传到GridFS,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,关于这一职位: 基本上,我正在做我应该做的一切来保存上传到Mongo GridFS的文件。但是,Mongo GridFS数据库中似乎没有保存任何内容(没有块或文件)。我正在使用busboy解析传入的多部分数据,我已经验证了我正在通过Mongoose连接Mongo数据库。。。我只是在寻找一个评论,看看为什么没有被保存 router.route('/doc') .post(function(req, resp, next) { var gfs = gridfs(mongo

关于这一职位:

基本上,我正在做我应该做的一切来保存上传到Mongo GridFS的文件。但是,Mongo GridFS数据库中似乎没有保存任何内容(没有块或文件)。我正在使用busboy解析传入的多部分数据,我已经验证了我正在通过Mongoose连接Mongo数据库。。。我只是在寻找一个评论,看看为什么没有被保存

 router.route('/doc')
    .post(function(req, resp, next) {
        var gfs = gridfs(mongoose.connection);

        var bb = new busboy({
            headers: req.headers
        });

        bb.on('file', function(fieldname, file, filename, encoding, mimetype) {
            var doc = new DocumentMeta();
            doc.setFileName(filename);
            doc.setMimetype(mimetype);
            doc.setEncoding(encoding);
            doc.insert(function(err) {
                if(!err) {
                    var ws = gfs.createWriteStream({
                        _id: mongoose.Types.ObjectId().toString(),
                        filename: filename,
                        mode: 'w',
                        content_type: mimetype
                    });
                    ws.on('close', function(file) {
                        console.log('Doc Written to DB');
                    });
                    file.on('data', function(data) {
                        console.log('GOT DATA');
                    });
                    file.pipe(ws);
                } else {
                    resp.json({success:false, msg: 'Error Creating Doc', data : { error : err.message }});
                }
            });
        });
        bb.on('finish', function() {
            resp.json({success:true, msg: 'Successfully Uploaded Doc'});
        });

        req.pipe(bb);

    });
我得到以下控制台输出:

Mongoose: fs.files.ensureIndex([ [ 'filename', 1 ] ]) { w: 1 }  
GOT DATA
Mongoose: fs.chunks.ensureIndex([ [ 'files_id', 1 ], [ 'n', 1 ] ]) { w: 1 }  
Mongoose: fs.files.findOne({ _id: ObjectId("56a16a383f6fbc877550752f") }) { w: 1, readPreference: 'primary' }  
Mongoose: fs.chunks.remove({ files_id: ObjectId("56a16a383f6fbc877550752f") }) { w: 1, readPreference: 'primary' } 
GOT DATA
GOT DATA
GOT DATA
GOT DATA
GOT DATA
POST /doc 200 756.218 ms - 50
我注意到mongoose调用了fs.chunks.remove。。。为什么它会尝试删除块?此外,GridFS写入流上从未调用“close”,因此我从未按预期输出“Doc write to DB”

任何指导都将不胜感激!谢谢