我正在使用angular-fullstack生成器,我添加了一个模型人。当我尝试在seed.js文件中要求person模型时,我收到此错误。
/Users/dev/wishlist/node_modules/mongoose/lib/index.js:334
throw new mongoose.Error.OverwriteModelError(name);
^
OverwriteModelError: Cannot overwrite `Person` model once compiled.
at Mongoose.model (/Users/dev/wishlist/node_modules/mongoose/lib/index.js:334:13)
at Object.<anonymous> (/Users/dev/wishlist/server/api/wishList/person.model.js:11:27)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/dev/wishlist/server/api/wishList/wishList.controller.js:4:14)
at Module._compile (module.js:456:26)
我遵循了与#34; Thing&#34;相同的结构。发电机附带的型号。还进行了搜索,其中Person位于代码库中,并且仅位于person.model.js和控制器中。
person.model.js:
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var PersonSchema = new Schema({
name: String,
quote: String
});
module.exports = mongoose.model('Person', PersonSchema);
wishlist.controller.js:
'use strict';
var _ = require('lodash');
var Person = require('./person.model');
// Get all the People that have wish lists
exports.getPeople = function(req, res) {
Person.find(function (err, people) {
if(err) { return handleError(res, err); }
return res.json(200, people);
});
};
function handleError(res, err) {
return res.send(500, err);
}
我错过了什么?
答案 0 :(得分:4)
据我所知,您发布的信息似乎是由以下几行引起的:
在Object上。 (/Users/dev/wishlist/server/api/wishList/person.model.js:11:27)强>
module.exports = mongoose.model('Person', PersonSchema);
在Object上。 (/Users/dev/wishlist/server/api/wishList/wishList.controller.js:4:14)强>
var Person = require('./person.model');
此错误最常见于Mongoose模型之间的不匹配。
在某个地方,您已使用不同的名称定义此模型,但使用相同的架构。
为了查看是否是导致错误的原因,请在person.model.js
之后立即在mongoose
中添加此代码:
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
mongoose.models = {};
mongoose.modelSchemas = {};
这将清除你的mongoose数据并清空所有现有的模型和模式。
我在以下LINK找到了上述信息。
答案 1 :(得分:0)
几周前,我也遇到了同样的错误。在尝试了几件事之后,我提出了一个简单的解决方法:
只需尝试以这种方式导出人物模型-
module.exports.PersonModel = mongoose.model('Person',PersonSchema);
代替-module.exports = mongoose.model('Person',PersonSchema);
希望这会有所帮助!
如果仍然出现错误,则只是导出此模型的模块中的路径。