Node.js Mongoose gridfs stream grid.mongo.ObjectID不是新GridWriteStream的构造函数

Node.js Mongoose gridfs stream grid.mongo.ObjectID不是新GridWriteStream的构造函数,node.js,mongodb,gridfs-stream,Node.js,Mongodb,Gridfs Stream,我正在尝试播放gridfs流,但在将图像文件发布到上载控制器时遇到问题。尝试创建写入流时返回grid.mongo.ObjectID不是新GridWriteStream的构造函数 我四处搜索,没有找到任何能帮助我解决这个问题的东西,调试也没有找到任何我可以使用的东西,这对我来说都是新技术 这是我的密码: const router = require('express').Router(); const database = require('../config/database'); var mo

我正在尝试播放gridfs流,但在将图像文件发布到上载控制器时遇到问题。尝试创建写入流时返回
grid.mongo.ObjectID不是新GridWriteStream的构造函数

我四处搜索,没有找到任何能帮助我解决这个问题的东西,调试也没有找到任何我可以使用的东西,这对我来说都是新技术

这是我的密码:

const router = require('express').Router();
const database = require('../config/database');
var mongoose = require('mongoose');

var Grid = require('gridfs-stream');
Grid.mongo = mongoose.connection;
var gfs = new Grid("db", mongoose.mongo.db);


router.get('/', function(req, res) {
    res.send("Greetings");
});

router.post('/img', function(req, res) {
    var part = req.files.fileField;

    var writeStream = gfs.createWriteStream({
        filename: part.name,
        mode: 'w',
        content_type:part.mimetype
     });

    writeStream.on('close', function() {
            return res.status(200).send({
            message: 'Success'
        });

        writeStream.end();
    });
});

module.exports = router;

我还尝试将
mongoose.mongo
作为第二个参数传递给gfs对象,但这也引发了一个错误,即无法读取未定义的
readPreferences

。应为
var conn=mongoose.connection;var gfs=新电网(conn.db,mongoose.mongo)。理想情况下,您“应该”沿着
var conn=await mongoose.connect()的线路等待实际连接
mongoose.connect()。然后(conn=>/*剩余代码*/)
或甚至
mongoose.connect(,conn=>/*剩余代码*/)
,这取决于您喜欢哪种风格。简而言之,
“db”
的当前“字符串”不是对该参数有效的对象。看看,同时也看看猫鼬的文档。宾果!好的,最初我的代码就像你说的,但是我没有想到实例化是在连接到数据库之前发生的。我已还原代码并将调用移动到事件侦听器。由于某些原因,图像未上载,但此问题中的问题已修复。非常感谢。