expressjs,mongoose,Schema错误

时间:2015-03-02 19:46:39

标签: javascript node.js mongodb express mongoose

因此。我正在尝试使用mongoose将mongoDB与expressjs项目一起使用,我得到了这个错误。

throw new mongoose.Error.MissingSchemaError(name);
        ^
MissingSchemaError: Schema hasn't been registered for model "device".

我也是新来的,但这里是index.js的源代码,我收到了var device的错误

var mongoose = require('mongoose');
var device = mongoose.model('device', device);

/* GET */
router.get('/', function(req, res) {
    new device({
        device_id    : "Something happened"
      }).save( function( err, device, count ){
        res.redirect( '/' );
    });     
});

这是我在app.js中的代码:

//mongo start
var mongo = require('mongodb');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var device = new Schema({
    device_id : String
});

var device = mongoose.model('device', device);

var db = mongoose.connect('mongodb://127.0.0.1:27017/database');

mongoose.connection.once('connected', function() {
    console.log("Connected to database")
});
//mongo end

1 个答案:

答案 0 :(得分:0)

您需要将架构传递给.model调用,而不是模型。在您的情况下,您似乎正在重新声明“设备”以包含模型。

我也会(作为旁注)鼓励您将此架构放在单独的文件中并导出架构。

有关示例,请参阅mongoose教程:mongoose schemas