【问题标题】:Mongoose never connects to mongodbMongoose 从不连接到 mongodb
【发布时间】:2026-02-08 03:55:02
【问题描述】:

我正在尝试在 Amazon EC2 Linux 服务器上使用 Mongoose 连接到 MongoDB。

这是我的代码:

var mongoose = require('mongoose');
console.log("Attempting antyhing to do with mongoose"); //shown

var db = mongoose.connection;
db.on('error',console.error.bind(console,'db connection error:')); //not shown
db.once('open',function(){
    console.log("Successful connection to db!"); //not shown
});

mongoose.connect('mongodb://localhost:27017/local',function(err){
    console.log("some kinda connection made"); //not shown
    if(err)
    {
        console.log("err: "+err);
    }
});

令人沮丧的是,我没有从猫鼬那里得到任何错误,但似乎什么也没有出现。

似乎有很多关于 mongoose 和 mongo 没有回调的问题。

以下是我看过的几个我认为对我来说没有问题的:

也供参考,我正在关注本教程:https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4

我正在做的一件让我担心的事情是我已将我的代码拆分为多个文件。所以这个猫鼬连接代码是从 app/models/host.js(或教程中的 Bear.js)文件中调用的。让我知道发布其他文件是否有帮助。

【问题讨论】:

  • 我在同一个教程之后遇到了同样的问题。我在 Mac 上本地运行 mongo,通过自制软件安装。我可以通过 CLI 连接并执行命令。该应用程序设法形成 5 个连接(我可以在 mongod 终端中看到它们),但在任何查询中都无限期挂起。还没找到问题:(

标签: node.js mongodb amazon-ec2 mongoose


【解决方案1】:

我也遇到了同样的问题。

检查您使用的 Mongoose 版本是否支持 MongoDb 服务器版本

在此链接上检查兼容性:http://mongoosejs.com/docs/compatibility.html

相应地更改 package.json 文件中 Mongoose 的版本。

希望这会有所帮助!

【讨论】:

  • 对于它的价值,我经历过同样的事情,结果我在我的 Mac 上使用了错误的 MongoDB 版本,再加上错误版本的 NodeJS Driver for MongoDB。对于后代,现在对我有用的是:用于 MongoDB 的 NodeJS 驱动程序:^3.1.9 MacOS MongoDB 版本:4.0.4。最后为我触发了 db.open() 事件。我的头发快用完了!
【解决方案2】:

还没有真正解决问题,但我找到了一种解决方法......不使用猫鼬。仍然希望连接到 mongoose,尤其是在我尝试学习教程时。

这是我成功连接到 mongodb 的代码:

var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = "mongodb://localhost:27017/host";

//Go Ahead and connect & sketchily initialize the db
var db;
var collection;
MongoClient.connect(url,function(err,database){
    if(err){
        console.log("Coudln't connect to mongo. Error"+err);
    } else{
        db = database;
        collection = db.collection('hosts');
        console.log("Connected to mongo, db good to go");
    }
});

【讨论】:

    最近更新 更多