我有一个mongoose架构,其字段为comments: [String]
。
当我尝试更新架构时,我通过将以下代码添加到控制器来检查值是null还是空,
if (req.body.comments !== null || req.body.comments !== '') {
container.comments.push(req.body.comments)
}
container.save() ...
但是,当我运行此代码(使用邮递员进行测试)并且没有为注释字段提供值时,它会在数据库中将数据更新为null。
comments: [String]
位于主模式定义中,而不是成功文档或类似内容的一部分。
有人知道解决这个问题的方法或为什么会这样?
答案 0 :(得分:2)
确保评论不是undefined
,您可以通过这种方式处理所有案例:
if (req.body.comments && req.body.comments !== '') {
container.comments.push(req.body.comments)
}
这样就不会添加空字符串,null和未定义的值,假设req.body.comments
总是以字符串形式出现。
答案 1 :(得分:0)
在到达条件声明之前,您需要将<!-- list.component.html -->
<tbody>
<tr *ngFor='let lst of iproducts.Registers'>
...
</tr>
<tr *ngIf='!iproducts.Registers'>
<td colspan="3">No List Data Found</td>
</tr>
</tbody>
设置为空数组
container.comments
这样,保存在数据库中的数据将始终是一个数组,无论您是否根据请求发送评论。
还值得一提的是,在monggose上保存一个空数组将导致container.comments = container.comments || []
if (req.body.comments && req.body.comments !== '') {
container.comments.push(req.body.comments)
}
,除非你覆盖它。
编辑示例以考虑数组是否为空