2016-07-17 8 views
0

これについていくつかのスレッドがあることは知っていますが、私の答えは正確には見つかりませんでした。だから私はどのように私はマングース& gridfsを使用してメタデータとともにこれを保存しますか?サーバー側アップロードしたファイルをメタデータと共にNode/Expressに保存するためにgridfsを使用する

{ fileToUpload: 
{ name: 'resume.pdf', 
data: <Buffer 25 50 44 46 2d 31 2e 33 0a 25 c4 e5 f2 e5 eb a7 f3 a0 d0 c4 c6 0a 34 20 30 20 6f 62 6a 0a 3c 3c 20 2f 4c 65 6e 67 74 68 20 35 20 30 20 52 20 2f 46 69 ... >, 
encoding: '7bit', 
mimetype: 'application/pdf', 
mv: [Function] } } 

にこのファイルオブジェクトを取得するために管理しているポストを使用して私が今まで見てきたほとんどのスレッドでは、gridfs-streamはファイルの一時的なパスを与えられて使用されましたが、私は持っていません。誰かが、データをメタデータと共にストリーミングしてこのファイルを保存するのを助けてくれました+私はそれをどのように取得するのかという例を挙げて&をクライアント側に送り返しますか?

答えて

0

私は疲れていたでしょう、私はミドルウェアとしてexpress-fileuploadを使用していましたが、オブジェクトのmv関数で行われたファイルを保存するために使用していませんでした。以下のコードを使用してファイルをローカルに保存し、gridfs-streamを使用してmongoにストリーミングします。

var file = req.files.fileToUpload; 
file.mv('./uploads/'+file.name, function(err) { 
    if (err) { 
     res.send(err, 500); 
    } 
    else { 
     res.send('File uploaded!'); 
     var gfs = Grid(conn.db); 

     // streaming to gridfs 
     //filename to store in mongodb 
     var writestream = gfs.createWriteStream({ 
      filename: file.name 
     }); 
     fs.createReadStream('./uploads/'+file.name).pipe(writestream); 

     writestream.on('close', function (file) { 
      // do something with `file` 
      console.log(file.filename + ' Written To DB'); 
     }); 
    } 
}); 
関連する問題