Node.js 如何使用Sails.JS+;GridFS?
我目前正在使用Sails.js构建web,在从GridFS检索图像文件时遇到了麻烦。我已使用skipper gridfs成功地将文件上载到我的mongo gridfs。我不知道如何以正确的方式显示该文件(我是Sails.js和Node系统的新手) 下面是我从gridfs检索图像文件的代码,类似于FileController.js(我使用的是gridfs流): 当我运行它时,控制台没有显示任何内容。 也没有错误 我该如何解决这个问题 补充问题:Node.js 如何使用Sails.JS+;GridFS?,node.js,mongodb,sails.js,gridfs,gridfs-stream,Node.js,Mongodb,Sails.js,Gridfs,Gridfs Stream,我目前正在使用Sails.js构建web,在从GridFS检索图像文件时遇到了麻烦。我已使用skipper gridfs成功地将文件上载到我的mongo gridfs。我不知道如何以正确的方式显示该文件(我是Sails.js和Node系统的新手) 下面是我从gridfs检索图像文件的代码,类似于FileController.js(我使用的是gridfs流): 当我运行它时,控制台没有显示任何内容。 也没有错误 我该如何解决这个问题 补充问题: 将文件存储到本地磁盘或从本地磁盘读取文件是否比使用g
var blobAdapter = require('skipper-gridfs')({uri: 'mongodb://jimmy@j1mtr0n1xx@mongo.jimmy.com:27017/coolapp.avatar_uploads' });
上传:
req.file('avatar')
.upload(blobAdapter().receive(), function whenDone(err, uploadedFiles) {
if (err) return res.negotiate(err);
else return res.ok({
files: uploadedFiles,
textParams: req.params.all()
});
});
下载
blobAdapter.read(filename, callback);
请记住,文件名将在上载到mongo后发生更改,您必须使用第一次响应中返回的文件名。在
skipper gridfs
代码中,有一个“read”方法接受fd
值并返回与该值对应的所需文件。因此,您只需通过该方法从mongo中提取该文件并作为响应发送即可。它应该可以正常工作
download: function (req, res) {
var blobAdapter = require('skipper-gridfs')({
uri: 'mongodb://localhost:27017/mydbname.images'
});
var fd = req.param('fd'); // value of fd comes here from get request
blobAdapter.read(fd, function(error , file) {
if(error) {
res.json(error);
} else {
res.contentType('image/png');
res.send(new Buffer(file));
}
});
}
我希望有帮助:)
其他问题:
download: function (req, res) {
var blobAdapter = require('skipper-gridfs')({
uri: 'mongodb://localhost:27017/mydbname.images'
});
var fd = req.param('fd'); // value of fd comes here from get request
blobAdapter.read(fd, function(error , file) {
if(error) {
res.json(error);
} else {
res.contentType('image/png');
res.send(new Buffer(file));
}
});
}