0

NodeとMongoDBを使用してアプリを構築していますが、Mongooseでは次のような会社モデルとAPIキーモデルがあります。

  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}
  });

すべての会社で、会社の作成時にデフォルトで1つの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 に答える