我正在使用ActionHero js和Mongoose创建一些rest。我把“猫鼬”代码放在一个增强器中,一切都正常。当我修改一些文件时,项目会自动重新编译,并返回以下错误: OverwriteModelError:
编译后无法覆盖
User模型。
如何编辑代码以避免此错误?“严格使用”;
var mongoose = require('mongoose');
exports.mongo = function(api, next) {
mongoose.connect(api.config.mongo.host);
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
console.log('Connection opened');
});
var Schema = mongoose.Schema,
Types = mongoose.Schema.Types;
var userSchema = mongoose.Schema({
createdAt: { type: Date, default: Date.now(), required: true},
updatedAt: { type: Date, required: false},
email: { type: String, required: true },
name: { type: String, required: true },
surname: { type: String, required: true },
password: { type: String, required: true },
roles: [],
tokens: [{
code: String,
expiryDate: { type: Date, default: Date.now() + 30 }
}]
});
var User = mongoose.model('User', userSchema);
var postSchema = mongoose.Schema({
createdAt: { type: Date, default: Date.now(), required: true},
updatedAt: { type: Date, required: false},
content: { type: String, required: true },
votes: { type: [Types.ObjectId], ref: 'User' } ,
coordinates: { type: [Number], index: { type: '2dsphere' }, required: true },
creator: { type: Schema.Types.ObjectId, ref: 'User', required: true }
});
var Post = mongoose.model('Post', postSchema);
api.mongo = {
mongoose: mongoose,
user: User,
post: Post
};
next();
};发布于 2014-06-30 08:11:40
如果您在developmentMode中,动作英雄将重新加载任何初始化器。您应该将连接步骤包装在_start()块中,而不是每次都让它们在线运行。这样,action英雄就可以重新加载文件,而不是重新运行连接步骤。
http://actionherojs.com/docs/core/initializers.html
https://stackoverflow.com/questions/24476583
复制相似问题