我在程序中使用 Mongoose 模型时遇到错误。
我在代码的开头就这样做了:
var Schema = mongoose.Schema;
mongoose.connect('xxxxx');
我使用了第一个名为 userSchema 的架构来连接/注册用户。
我有这段代码,它应该在我的数据库的字段 Bonus 上进行随机操作。但是当我进入 randTest 页面时,出现此错误。我该如何解决它?
app.get('/randTest', function(req,res)
{
var bonusSchema = new Schema({
bonus : [String]
});
var bonusModel = mongoose.model('Plateau', bonusSchema);
var query = bonusModel.find(null);
query.exec(function (err, allBonus){
if(err) { throw err;}
var rand = Math.floor((Math.random() *allBonus.length));
var result = allBonus[rand-1];
});
res.render('randTest', {result: result});
});
在我的 Jade 文件中,我刚刚:
extends layout
block content
script.
alert({#result});
最佳答案
将 bonusModel
定义移至 app.get
之外,以便仅调用一次:
var bonusSchema = new Schema({
bonus : [String]
});
var bonusModel = mongoose.model('Plateau', bonusSchema);
app.get('/randTest', function(req,res)
{
var query = bonusModel.find(null);
...
});
关于node.js - express , Mongoose : OverwriteModelError : Cannot Overwrite 'xxxxx' model once compiled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23542277/