ユーザードキュメント用にMongooseを使用してモデルレイヤーを作成したいのですが、これは次のことを行います。
これらのアクションはすべて、データベースに永続化する前に実行する必要があります。幸い、マングースは検証、プラグイン、ミドルウェアをサポートしています。
悪いことは、私がその主題について良い資料を見つけることができないということです。 mongoosejs.comの公式ドキュメントは短すぎます...
Mongoose(または存在する場合はすべてを実行する完全なプラグイン)を使用した事前アクションについての例はありますか?
よろしく
Schema.pre('save', callback)
関数では、this
は保存されているドキュメントであり、next()
を呼び出す前に変更を加えると保存内容が変更されます。
別のオプションは、ゲッターを使用することです。これがウェブサイトからの例です:
function toLower (v) {
return v.toLowerCase();
}
var UserSchema = new Schema({
email: { type: String, set: toLower }
});
var db = require('mongoose');
var schema = new db.Schema({
foo: { type: String }
});
schema.pre('save', function(next) {
this.foo = 'bar';
next();
});
db.model('Thing', schema);