0%

mongoose 模型定义重复引用就报错:Cannot overwrite model once compiled 怎么解决?

错误提示的意思是:mongoose模型被重复定义了,这是不允许的

首先,你需要搞清楚require和module.exports的运行机制,建议你看看这篇:http://www.nodeclass.com/articles/37488

然后,针对你这个场景,不应该把 mongoose.model()模型定义方法做为模块导出的方法,因
为:

模型定义不允许重复,所以这个mongoose.model()应该只调用一次,而导出它执行后的结果
require机制确保了mongoose.model()只会执行一次

所以,你的代码应该改写成这样:

1
2
3
4
5
6
var UserAccountSchema = mongoose.Schema({
//...略去定义代码
});
var model = mongoose.model('user.account', UserAccountSchema);
//导出模型
module.exports =model;