Express,Mongoose:OverwriteModelError:编译后无法覆盖'xxxxx'模型

时间:2014-05-08 12:51:33

标签: node.js mongodb mongoose

我在程序中使用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});

1 个答案:

答案 0 :(得分:4)

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);
  ...
});