node.js - 当我尝试使用工作 URL 连接到同一个数据库时,Mongoose 永远不会返回它的 promise

标签 node.js mongodb mongoose mean-stack

我有一个本地托管的 mongodb,可以使用 mongodb.MongoClient 连接到它。

工作代码:

var mongoClient = require("mongodb").MongoClient;

...

var startApp = function(db) {
    // Get our collections in an easy to use format
    var database = {
        chats: db.collection('chats'),
        messages: db.collection('messages')
    };

    // Configure our routes
    require('./app/routes')(app, database);

    // START APP

    // Start app on port
    app.listen(port);

    // Tell user the app is running
    console.log("App running on port " + port);

    // Expose app
    exports = module.exports = app;
}

// DATABASE

var database = null;
mongoClient.connect(config.url, function(err, returnDB) {
    if(err) {
        console.log(err);
    } else {
        console.log("DB connected");
        startApp(returnDB);
    }
});

不再有效的旧代码:

var mongoose = require('mongoose');

...

// Connect to DB
console.log('Connect to database (' + db.url + ')');
mongoose.connect(db.url);

我已向此连接方法添加了一个回调,但它永远不会被调用(错误或无错误,此连接函数永远不会到达我的回调)。

整个遗留应用程序依赖于使用 mongoose 与数据库通信的 API,因此我不想使用 mongodb 重做这一切。我该如何解决这个问题?

*config.url 和 db.url 是从同一个文件加载的,并且它是有效且正在运行的 mongodb。

最佳答案

这真的很容易修复。感谢@Bhavik询问我使用的是什么版本。

我通过在packages.json中指定最新版本将mongoose更新到4.8.1,问题已解决。

关于node.js - 当我尝试使用工作 URL 连接到同一个数据库时,Mongoose 永远不会返回它的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42235508/

相关文章:

java - 带有 java 编译器的客户端模板语言(DRY 模板)

javascript - 想要删除 Browser.sleep()

node.js - Firebase云功能-Reference.update失败

php - 在 MongoDB 中查找字段不为空的字段(在 PHP 中)

java - 设置 bean 属性 'mongoTemplate' 时无法解析对 bean 'mongoOperations' 的引用

node.js - 连接已关闭 : Multiple node apps connecting to same MongoDB server using Mongoose

node.js - 如何查询 mongoose 以便搜索必须匹配两个 id

node.js - 在带有 Node.js 的 Linux 服务器上使用 Microsoft Access 数据库 .accdb

javascript - 获取 "TypeError: res.status is not a function."

javascript - Mongoose 扩展默认验证