我尝试在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)文件中调用的。如果发布其他文件会有帮助,请告诉我。
答案 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");
}
});