У меня есть этот код
var ClientSchema = new Schema({
name: {type: String, required: true, trim: true}
});
var Client = mongoose.mode('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 не проверяет и не сохраняет пустое имя. Если я добавляю пустые пробелы до и после имени, он сохраняет имя с пробелами.
Почему mongoose проверяется при сохранении, но не при обновлении? Я делаю это не так?
mongodb: 2.4.0 мангуста: 3.6.0 экспресс: 3.1.0 node: 0.10.1