node.js – 使用GridFs从MongoDB中提取文件 – 未打开ID ###的文件进行写入

我正在使用Grid保存并将二进制数据加载到mongoDB数据库.我正在使用nodejs.按照我能够找到的所有示例(非常相似),我的代码是:

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 readStream = gfs.createReadStream({
                _id: req.query.id
            }).pipe(res);
        });        
    }
    else
        res.redirect('/home');
});

req.query.id是我需要的文件的id.我得到的回应是:

MongoError: file with id 557aa98e6f1373cb11e8f294 not opened for writing

这没有任何意义,因为我不写,我正在读文件.

解决方法

文件不存在.我检查使用:

gfs.exist({_id: req.query.id+''},function (err,found) {
  if (err) return handleError(err);
  found ? console.log('File exists') : console.log('File does not exist');
  res.send(found)
});

我使用的是错误的ID.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...