2017-03-29 4 views
0

mongooseとGridFSを使用してMongoDBにファイルを書き込もうとしています。 しかし、gridfsのwritestreamは、イベントのいずれも起動しません。つまり、終了または終了します。 また、「エラーイベント」でも発砲していません(エラーがある場合に備えて)。私のnodejsのバージョンは4.4.5です。 コードは以下の通りです:writestreamのイベントをクローズまたは終了するグリッドを起動しない

var mongoose = require('mongoose'); 
var formidable = require('formidable'), 
    http = require('http'), 
    util = require('util'), 
    fs = require('fs-extra'); 
var Regex = require("regex"); 
var fs = require('fs'); 
var path=require('path'); 
var grid =require("gridfs-stream"); 

var createRequirement = function (req, res) { 
    var form = new formidable.IncomingForm({ 
     uploadDir: __dirname + '/upload' 
    }); 
    form.multiples = true; 
    form.keepExtensions = true; 
    files = [], 
    fields = []; 
    form.on('field', function (field, value) { 

    }) 

    form.on('file', function (field, file) { 
      console.log(file.name); 
      console.log('File uploaded : ' + file.path); 
      grid.mongo = mongoose.mongo; 
      var gfs = grid(db.db); 
      var writestream = gfs.createWriteStream({ 
       filename: file.name, 
       mode: 'w' 
      }); 
      fs.createReadStream(file.path).pipe(writestream); 
      //Below event is not fired. 
      writestream.on('finish', function (file) { 
       Company.findOne({ 
        "users.userName": req.user.userName 
       }).then(function (data) { 
        var company = data; 
        if (!company) { 
         return res.status(404).send({ 
          'Not Found': 'Company data not found' 
         }); 
        } else { 

         Contact.findByIdAndUpdate(
          file._id, { 
           $push: { 
            "attachments": { 
             id: file._id 
            } 
           } 
          }, { 
           safe: true, 
           upsert: true, 
           new: true 
          }, 
          function (err, model) { 
           console.log(err); 
          } 
         ); 

        } 
       }); 
      }) 


}); 
form.parse(req); 
    return; 
}; 

答えて

0

私がしようと、多くの後に解決策を見つけ出すことができます。 問題を引き起こしていたのは、マングース接続でした。 gridfs-streamは、直接のMongo-DB接続を必要とします。 私は彼らが合理化されたものを持っていて、モンゴース接続の利用を容易にしたいと思います。

関連する問題