我有一个可以包含一个或多个元素的请求主体。在我在数据库中出现的模型中,我希望在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这样的事情吗?并且仅在存在时插入它?
答案 0 :(得分:0)
是的,你可以。
const _ = require('lodash');
Models.findModel(req.params.id, _.pick(req.body, ['a', 'b', 'c', 'd']))
btw:Typescript没有对运行时进行任何检查,只是在转换时。