mongodb - Mongoose.js instance.save() 回调未触发

标签 mongodb mongoose

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/

相关文章:

python - 如何改进 XML 导入到 mongodb 中?

node.js - MongoDB - $nin 聚合运算符无效

javascript - 导入的成员无法创建 Mongoose 模型

java - gwt + mongo (吗啡) = IncompleteClassChangeError

mongodb - 如何从 mongodb 获取唯一记录?

ruby - 在 Ruby 驱动程序上使用 upsert 和 push to an array 选项

node.js - Mongoose - foreach 循环与聚合结果

arrays - 我将一个对象推送到 Mongoose 中的数组,数组仅存储其长度

node.js - 从对象 ID 数组中查找用户详细信息

node.js - Mongoose 流 JSON 数据