【发布时间】:2015-02-12 09:40:26
【问题描述】:
我正在使用 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)
我采用了与生成器附带的“事物”模型相同的结构。还进行了搜索以及 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);
}
我错过了什么?
【问题讨论】:
-
我遇到了同样的问题,虽然下面的建议似乎“解决”了我的问题,但很难相信这是解决问题的正确方法。
标签: javascript angularjs node.js mongodb