私はこのコードを持っています
var ClientSchema = new Schema({
name: {type: String, required: true, trim: true}
});
var Client = mongoose.model('Client', ClientSchema);
Expressを使用して、このコードで新しいクライアントを作成します
var client = new Client(req.body);
client.save(function(err, data) {
....
});
フォームの名前フィールドを空のままにすると、スキーマで必要に応じて設定したため、mongooseはクライアントを作成できません。また、名前の前後にスペースを残すと、mongooseは保存する前にそのスペースを削除します。
今、私はこのコードでクライアントを更新しようとしています
var id = req.params.id;
var client = req.body;
Client.update({_id: id}, client, function(err) {
....
});
名前を変更できますが、フォームで空のままにすると、mongooseは空の名前を検証して保存しません。名前の前後に空のスペースを追加すると、名前がスペースとともに保存されます。
なぜマングースは保存時に検証するが更新には検証しないのですか?私はそれを間違った方法でやっていますか?
mongodb:2.4.0マングース:3.6.0エクスプレス:3.1.0ノード:0.10.1