var mongo = require('mongoose');
var connection = mongo.createConnection('mongodb://127.0.0.1/test');
connection.on("error", function(errorObject){
console.log(errorObject);
console.log('ONERROR');
});
var Schema = mongo.Schema;
var BookSchema = new Schema({ title : {type : String, index : {unique : true}}});
var BookModel = mongo.model('abook', BookSchema);
var b = new BookModel({title : 'aaaaaa'});
b.save( function(e){
if(e){
console.log('error')
}else{
console.log('no error')
}});
“错误”或“无错误”都不会打印到终端。更重要的是,connection.on 'error' 似乎也没有触发。我已经确认 MongoDb 正在运行。
最佳答案
在这种情况下,您将模型添加到全局 mongoose 对象,但打开了一个单独的连接 mongo.createConnection()
,模型不属于该连接。由于模型没有连接,因此无法保存到数据库。
这可以通过在全局 mongoose 连接上连接到 mongo 来解决:
var connection = mongo.createConnection('mongodb://127.0.0.1/test');
// becomes
var connection = mongo.connect('mongodb://127.0.0.1/test');
或通过将模型添加到单独的连接:
var BookModel = mongo.model('abook', BookSchema);
// becomes
var BookModel = connection.model('abook', BookSchema);
关于mongodb - Mongoose.js instance.save() 回调未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10156623/