spread操作符可以解决下面的问题吗?假设我有更多的字段,那么我必须为每个字段声明req.body.something,这是非常乏味的。
app.use((res,req,next) => {
const obj = {
name: req.body.name,
age: req.body.age,
gender: req.body.gender
}
//
User.saveUser(resp => res.json(resp)) //User model
})
3条答案
按热度按时间zpgglvta1#
您可以使用lodash的
pick()
:_.pick(对象,[路径])
创建由拾取的对象特性组成的对象。
示例代码为:
如果
gender
不存在于req.body
中,它将被忽略--结果obj
对象将没有gender
字段。如果需要所有的
req.body
字段,则只需将req.body
赋值给obj
:要验证
req.body
内容,可以使用lodash的.has()
:_.has(对象,路径)
检查路径是否为对象的直接属性。
示例代码为:
3ks5zfa02#
您可以使用destructuring assignment:
但是,您仍然必须验证它,并将它们全部计入您的方案中。
更新日期:
添加一些验证示例。
假设路由中存在这样的架构:
然后,在处理程序中验证:
nhn9ugyo3#
你可以使用反结构赋值
或者,如果您希望使用扩展操作,则可以用途:
希望能有所帮助!