因此。我正在尝试使用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
答案 0 :(得分:0)
您需要将架构传递给.model调用,而不是模型。在您的情况下,您似乎正在重新声明“设备”以包含模型。
我也会(作为旁注)鼓励您将此架构放在单独的文件中并导出架构。
有关示例,请参阅mongoose教程:mongoose schemas。