最佳答案
我有这个密码
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) {
....
});
如果表单中的 name 字段为空,猫鼬就不允许创建客户机,因为我将它设置为模式中所需的。另外,如果我在名字前后留下空格,猫鼬会在保存之前删除这些空格。
现在,我尝试用这段代码更新一个客户端
var id = req.params.id;
var client = req.body;
Client.update({_id: id}, client, function(err) {
....
});
它允许我更改名称,但是如果我在表单上保留它为空,猫鼬不会验证并保存一个空名称。如果在名称之前和之后添加空格,它将使用空格保存名称。
为什么猫鼬在保存时验证,而不是在更新时验证? 我做的方式不对吗?
Mongodb: 2.4.0 猫鼬: 3.6 Express: 3.1.0 节点: 0.10.1