2015-06-26 178 views
1

我想使用mongoosees6,但沒有用下面的代碼的任何運氣:貓鼬ES6不工作對我來說

var mongoose = require('mongoose'); 
var co = require('co'); 

mongoose.connect('mongodb://localhost/test', { 
    server: { 
    socketOptions: { 
     keepAlive: 1 
    } 
    } 
}); 
mongoose.connection.on('error', function(err) { 
    console.error('MongoDB error: %s', err) 
}); 
co(function*() { 
    console.log('starting'); 
    var schema = new Schema({ 
    description: { 
     type: String, 
     required: true 
    } 
    }); 
    console.log('creating schema'); 
    var s = db.model('schema', schema); 
    console.log('creating doc'); 

    var br = new s({ 
    description: 'abc' 
    }); 

    yield br.save(); 
}); 

輸出唯一的「開始」,並掛在那裏,直到永遠。

任何人都可以解決我的問題?

回答

0

我沒有看到Schema從Mongoose導入!

你有沒有嘗試創建新的模式前設置如下:

var Schema = mongoose.Schema; 
2

萬一有人有同樣的問題。使用co你總是應該抓住錯誤,如果不是,你不會知道它有什麼問題。你的代碼工作的例子。

var mongoose = require('mongoose'); 
var co = require('co'); 
var Schema = mongoose.Schema; 

mongoose.connect('mongodb://localhost/test', { 
    server: { 
     socketOptions: { 
      keepAlive: 1 
     } 
    } 
}); 

mongoose.connection.on('error', function(err) { 
    console.error('MongoDB error: %s', err) 
}); 

co(function*() { 
    console.log('starting'); 
    var schema = new Schema({ 
     description: { 
      type: String, 
      required: true 
     } 
    }); 
    console.log('creating schema'); 
    var s = mongoose.model('schema', schema); 
    console.log('creating doc'); 

    var br = new s({ 
     description: 'abc' 
    }); 

    yield br.save(); 
}).catch (function (err) { 
    console.log('this is the errror -> ', err); 
});