3

GridFs を使用して、画像を mongoDB に正常にアップロードできました。以下は私のデータベースからの画像です:

モンゴラボ

fs.files:

ここに画像の説明を入力

fs.チャンク:

ここに画像の説明を入力

以下は、画像をアップロードするために使用したコードです。

var Grid = require('gridfs-stream');
var mongoose = require("mongoose");
Grid.mongo = mongoose.mongo;
var gfs = new Grid(mongoose.connection.db);

app.post('/picture', function(req, res) {
 var part = req.files.filefield;

            var writeStream = gfs.createWriteStream({
                filename: part.name,
                mode: 'w',
                content_type:part.mimetype
            });


            writeStream.on('close', function() {
                 return res.status(200).send({
                    message: 'Success'
                });
            });

            writeStream.write(part.name);

            writeStream.end();
   });

問題:

この画像をmongoDBから読み取り、フロントエンドのHTML<img>タグで表示する方法がわかりません。

これまでにこれを試しましたが、ファイルの名前のみが表示されます。

app.get('/picture', function(req, res) {


gfs.files.find({ filename: 'trooper.jpeg' }).toArray(function (err, files) {

    if(files.length===0){
        return res.status(400).send({
            message: 'File not found'
        });
    }

    res.writeHead(200, {'Content-Type': files[0].contentType});

    var readstream = gfs.createReadStream({
          filename: files[0].filename
    });

    readstream.on('data', function(chunk) {
        res.write(chunk);
    });

    readstream.on('end', function() {
        res.end();        
    });

    readstream.on('error', function (err) {
      console.log('An error occurred!', err);
      throw err;
    });
  });
});

上記のコードはhereから取得しました

誰でも助けてください。私はDAYSのためにこれに立ち往生しています!!!!

4

1 に答える 1