use*_*025 3 mongoose mongodb node.js
我有一个包含以下定义字段的架构:
range: {type: Number, default: 100000, min: 1},
Run Code Online (Sandbox Code Playgroud)
在控制器中我设置范围并保存:
function postPlacard(req, res) {
// Create a new instance of the Placard model
var placard = new Placard();
...
placard.range = req.body.range;
...
placard.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Placard added!', data: placard });
});
}
Run Code Online (Sandbox Code Playgroud)
如果我在表单中提交没有范围的POST,则会出现问题.在这种情况下,没有范围字段保存到文档中.这显然意味着范围小于其最小值1.
我希望在保存之前未定义范围,然后在保存期间应该应用默认值.
发生了什么导致保存文档中缺少范围,我该如何纠正?
谢谢
您正在尝试此错误,因为placard.range即使req.body.range字段丢失也要分配.这会覆盖range设置的默认值new Placard().
限定您的作业,以便只有在使用以下内容时才会出现该作业:
if (req.body.range !== undefined) {
placard.range = req.body.range;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1484 次 |
| 最近记录: |