【发布时间】:2018-03-24 03:29:02
【问题描述】:
我遇到了 gridfs 文件上传的问题。 基本上我得到了这个奇怪的错误,我还没有找到解决这个问题的解决方案。
这是我应该处理文件上传的代码:
var path = require('path');
var router = require('express').Router();
var mongoose = require('mongoose');
var serverConfig = require('../config.js');
var multiparty = require('connect-multiparty')();
var fs = require('fs');
var GridFs = require('gridfs-stream');
var db = mongoose.connection.db;
var mongoDriver = mongoose.mongo;
var gfs = new Gridfs(db, mongoDriver);
router.post('/upload', multiparty, function(req, res){
console.log("file was posted");
var writestream = gfs.createWriteStream({
filename: req.files.file.name + Date.now(),
mode: 'w',
content_type: req.files.file.mimetype,
metadata: req.body
});
fs.createReadStream(req.files.file.path).pipe(writestream);
writestream.on('close', function(file){
res.status(200).json(file);
})
})
当我尝试运行我的代码时,我得到了这个错误:
if (!db) throw new Error('missing db argument\nnew Grid(db, mongo)');
^
Error: missing db argument
new Grid(db, mongo)
我正在使用 Mongoose 版本 4.11.12 和 Gridfs-stream 版本 1.1.1
有人知道应该怎么做才能让这个东西正常工作吗?
【问题讨论】:
-
看起来
mongoose.connection.db没有设置,你的连接字符串是什么样的?
标签: node.js mongodb mongoose gridfs gridfs-stream