【发布时间】:2014-11-08 20:59:55
【问题描述】:
我目前正在使用 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-stream 来检索 gridfs 格式的文件是否正确?
【问题讨论】:
标签: node.js mongodb sails.js gridfs gridfs-stream