2017-07-20 3 views
0

私はImageFSをGridFS経由でMongoDBでマルチパートとして送信しようとしています。 私はmulterとmemoryStorageオプションを使用しています。MongoDBのGridFSでexpressからバッファを保存します。

let buffer: Buffer = req.file.buffer; 

これは正常に動作し、私は私のMongoDBにこのバッファを保存して苦労している:私はこのようなバッファへのアクセスルートインサイド

let upload = multer({ storage: multer.memoryStorage() }).single('imageFile'); 
app.use(upload); 

let writeStream = this.gfs.createWriteStream({ 
      mode: 'w', 
      filename: 'Image', 
      content_type: 'image/png' 
     }); 
streamifier.createReadStream(buffer).pipe(writeStream); 

これは私のMongoDBにバッファを保存する方法です。

Mongoose: fs.files.ensureIndex([ [ 'filename', 1 ] ], { w: 1 }) 
Mongoose: fs.chunks.ensureIndex([ [ 'files_id', 1 ], [ 'n', 1 ] ], { w: 1, unique: true }) 
Mongoose: fs.files.findOne({ _id: ObjectId("597089c973179c0138eef7ae") }, { w: 1, readPreference: 'primary' }) 

これは私のMongoDBから取得したログです。しかし、DBには何も格納されていません。

解決方法はありますか?すでにthis solutionを試しましたが、それは私のためには機能しませんでした。

答えて

0

明らかに問題は私が投稿したコードではありませんでした。 これは動作しますが、gfsが接続ではなくMongoDBインスタンスでロードされていることを確認してください。

関連する問題