現在、Sails.js を使用して Web を構築していますが、GridFS から画像ファイルを取得する際に行き詰まりました。skipper-gridfs を使用してファイルを mongo gridfs に正常にアップロードしました。ファイルを正しい方法で表示する方法がわかりません (Sails.js と Node システムは初めてです)
これは、Gridfs から画像ファイルを取得するための私のコードで、FileController.js のようになります (私は gridfs-stream を使用しています)。
show: function (req, res, next) {
var mongo = require('mongodb');
var Grid = require('gridfs-stream');
var buffer="";
// create or use an existing mongodb-native db instance
var db = new mongo.Db('testDb', new mongo.Server("192.168.0.2", 27017), {safe:true});
var gfs = Grid(db, mongo);
// streaming from gridfs
var readstream = gfs.createReadStream({
filename: 'e1ecfb02-e095-4e2f.png'
});
//check if file exist
gfs.exist({
filename: 'e1ecfb02-e095-4e2f.png'
}, function (err, found) {
if (err) return handleError(err);
found ? console.log('File exists') : console.log('File does not exist');
});
//buffer data
readstream.on("data", function (chunk) {
buffer += chunk;
console.log("adsf", chunk);
});
// dump contents to console when complete
readstream.on("end", function () {
console.log("contents of file:\n\n", buffer);
});
}
実行すると、コンソールには何も表示されませんでした。エラーもありません。
これを修正するにはどうすればよいですか?
追加の質問:
- gridfs を使用する代わりに、ローカル ディスクとの間でファイルを保存/読み取りする方が簡単ですか?
- gridfs 形式のファイルを取得するために gridfs-stream を選択するのは正しいですか?