我正在使用Node和MongoDB构建一个应用程序,我有一个公司模型和一个API密钥模型,在Mongoose中看起来像这样:
var APIKeysSchema = new Schema({
name: { type: String }
});
var CompanySchema = new Schema({
name : {type : String, required: true, index: { unique: true }}
, apiKeys : [ APIKeysSchema ]
, created_at : {type : Date, default : Date.now}
});
我希望每家公司默认拥有创建公司时生成的一个API密钥。我应该为此编写自定义中间件,还是有一些方法可以在架构本身内完成。谢谢!
答案 0 :(得分:0)
结束只是在模型中保存时作为中间件:
CompanySchema.pre('save', function(next){
if(this.get('apiKeys').length < 1){
//generate API key
var objectId = new ObjectID();
this.get('apiKeys').push({ key: objectId.toHexString() });
}
next();
});