【发布时间】:2013-03-15 17:04:00
【问题描述】:
我有这个代码
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 不允许创建客户端,因为我在架构上根据需要设置了它。另外,如果我在名称前后留有空格,猫鼬会在保存前删除这些空格。
现在,我尝试使用此代码更新客户端
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
【问题讨论】:
-
您采用了哪种方法?只是好奇,面临完全相同的问题。你能在这里分享例子吗?非常感谢。
标签: mongoose