25
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が実行されていることを確認しました。

4

3 に答える 3

69

これは、モデルをグローバル 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);
于 2012-04-18T00:13:44.710 に答える