0

我正在使用 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 密钥。我应该为此编写自定义中间件,还是有某种方法可以在架构本身中做到这一点。谢谢!

4

1 回答 1

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();
  });
于 2012-08-16T16:57:28.077 回答