首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MongoDB下载图像文件

从MongoDB下载图像文件
EN

Stack Overflow用户
提问于 2017-09-26 04:49:17
回答 1查看 1.1K关注 0票数 2

正在尝试使用路由从MongoDB下载图像文件:

代码语言:javascript
复制
router.get('/:id', function(req, res) {
  gfs.findOne({ _id: mongoose.Types.ObjectId(req.params.id) }, function(err, file) {
    if (err) {
      common.handleError(err, res);
      return;
    }

    if (!file) {
      return res.json({ status: constants._ERROR, body: { message: constants._FILE_NOT_FOUND }});
    }

    res.set('Content-Type', file.contentType);
    res.set('Content-Disposition', 'attachment; filename="' + file.filename + '"');

    //console.log(file);
    var readstream = gfs.createReadStream({
      _id: file._id
    });

    readstream.on('error', function (err) {
      console.error('Read error', err);
      res.end();
    });

    readstream.pipe(res);
  });
});

堆栈跟踪:

代码语言:javascript
复制
/Users/eric.miles/Projects/Personal/mean/emcontacts/node_modules/mongodb/lib/utils.js:123
        process.nextTick(function() { throw err; });
                                      ^

    TypeError: Cannot read property 'readPreference' of null
        at new GridStore (/Users/eric.miles/Projects/Personal/mean/emcontacts/node_modules/mongodb/lib/gridfs/grid_store.js:130:66)
        at new GridReadStream (/Users/eric.miles/Projects/Personal/mean/emcontacts/node_modules/gridfs-stream/lib/readstream.js:68:17)
        at Grid.createReadStream (/Users/eric.miles/Projects/Personal/mean/emcontacts/node_modules/gridfs-stream/lib/index.js:53:10)
        at /Users/eric.miles/Projects/Personal/mean/emcontacts/server/routes/file.js:51:26

版本:

代码语言:javascript
复制
"gridfs-stream": "^1.1.1",
"mongoose": "^4.11.13"

在createReadStream线路上大吃一惊。文件肯定在数据库中,"fs.files & fs.chunks“。

目前正在尝试通过邮递员访问。

EN

回答 1

Stack Overflow用户

发布于 2017-09-27 01:36:02

所以,我要做的就是像这样设置我的数据库连接:

代码语言:javascript
复制
mongoose.connect(mongodb_url, { useMongoClient: true });
var db = mongoose.connection;
db.options = {};
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  console.info('database connection successful');
});

"db.options = {};“是关键字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46413947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档