使用 nodejs 下载 GridFs 无法启动
Download of GridFs using nodejs does not start
我正在尝试使用 GridFS 下载保存在 mongoDB 中的 +200M 的二进制文件。我的问题是下载无法开始。我将 nodejs 与 mongodb 和 gridfs-stream.
一起使用
在routes.js中:
router.get('/getlog',function(req,res) {
if (req.isAuthenticated())
{
var mongo = require('mongodb');
var Grid = require('gridfs-stream');
var db = new mongo.Db('logApp', new mongo.Server("127.0.0.1", 27017));
db.open(function (err) {
if (err)
return handleError(err);
});
var gfs = Grid(db, mongo);
var id = req.query.id;
gfs.exist({_id: id}, function (err, found) {
if (err) return handleError(err);
if (!found)
res.send('Error on the database looking for the file.')
});
var readStream = gfs.createReadStream({
_id: id
}).pipe(res);
}
else
res.redirect('/login');
});
我认为的某个地方:
td #[a(href="getlog?id=#{log.logId}", download="logfile") #[span(name='log').glyphicon.glyphicon-download]]
从 nodejs 日志生成响应:
GET /getlog?id=55818770b276172922b945b8 - - ms - -
但是下载永远不会开始...我不知道发生了什么...
改变
gfs.exist({_id: id}, function (err, found) {
if (err) return handleError(err);
if (!found)
res.send('Error on the database looking for the file.')
});
var readStream = gfs.createReadStream({
_id: id
}).pipe(res);
至
gfs.exist({_id: id}, function (err, found) {
if (err) return handleError(err);
if (!found)
return res.send('Error on the database looking for the file.');
gfs.createReadStream({_id: id}).pipe(res);
});
请尝试。
我正在尝试使用 GridFS 下载保存在 mongoDB 中的 +200M 的二进制文件。我的问题是下载无法开始。我将 nodejs 与 mongodb 和 gridfs-stream.
一起使用在routes.js中:
router.get('/getlog',function(req,res) {
if (req.isAuthenticated())
{
var mongo = require('mongodb');
var Grid = require('gridfs-stream');
var db = new mongo.Db('logApp', new mongo.Server("127.0.0.1", 27017));
db.open(function (err) {
if (err)
return handleError(err);
});
var gfs = Grid(db, mongo);
var id = req.query.id;
gfs.exist({_id: id}, function (err, found) {
if (err) return handleError(err);
if (!found)
res.send('Error on the database looking for the file.')
});
var readStream = gfs.createReadStream({
_id: id
}).pipe(res);
}
else
res.redirect('/login');
});
我认为的某个地方:
td #[a(href="getlog?id=#{log.logId}", download="logfile") #[span(name='log').glyphicon.glyphicon-download]]
从 nodejs 日志生成响应:
GET /getlog?id=55818770b276172922b945b8 - - ms - -
但是下载永远不会开始...我不知道发生了什么...
改变
gfs.exist({_id: id}, function (err, found) {
if (err) return handleError(err);
if (!found)
res.send('Error on the database looking for the file.')
});
var readStream = gfs.createReadStream({
_id: id
}).pipe(res);
至
gfs.exist({_id: id}, function (err, found) {
if (err) return handleError(err);
if (!found)
return res.send('Error on the database looking for the file.');
gfs.createReadStream({_id: id}).pipe(res);
});
请尝试。