如果未定义,则不插入更新值

时间:2018-05-10 14:42:21

标签: node.js typescript mongoose

我有一个可以包含一个或多个元素的请求主体。在我在数据库中出现的模型中,我希望在body对象中插入所有元素,但如果在运行时不存在,则会出现错误,因为特定键的值未定义。

在我的模型中,我有属性a,b,c,d。

在我的请求正文中,我有: {a: 1, b:1}

我的插入是 Models.findModel(req.params.id, {a: req.body.a, b:req.body.b, c: req.body.c, d: req.body.d} 如果我这样做,我有一个运行时错误导致数字中的d,并且无法定义。

我正在使用Typescript和mongoose。我能做像req.body.a这样的事情吗?并且仅在存在时插入它?

1 个答案:

答案 0 :(得分:0)

是的,你可以。

const _ = require('lodash');
Models.findModel(req.params.id, _.pick(req.body, ['a', 'b', 'c', 'd']))

btw:Typescript没有对运行时进行任何检查,只是在转换时。