猫鼬永远不会连接到mongodb

时间:2016-09-10 17:29:22

标签: node.js mongodb amazon-ec2 mongoose

我尝试在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

我担心的一件事是我将我的代码拆分成多个文件。所以这个mongoose连接代码是从app / models / host.js(或教程中的bear.js)文件中调用的。如果发布其他文件会有帮助,请告诉我。

2 个答案:

答案 0 :(得分:7)

我也面临同样的问题。

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

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

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

希望这有帮助!

答案 1 :(得分:0)

Haven并没有真正解决问题,但我找到了一个解决方法......不使用猫鼬。仍然会喜欢连接到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");
    }
});