javascript - 将 req.body 属性映射到对象键
问题描述
现在,当我想向数据库添加对象时,我执行以下操作:
return BSRequest.create({
salon_name: req.body.salon_name,
salon_type: req.body.salon_type,
employees: req.body.employees,
postcode: req.body.postcode,
city: req.body.city,
website: req.body.website,
first_name: req.body.first_name,
last_name: req.body.last_name,
email: req.body.email,
phone_number: req.body.phone_number
})
.then(bsRequest => res.status(201).send(bsRequest))
.catch(error => res.status(400).send(error));
Javascript/Node 中是否有办法自动获取 的属性,req.body
以便将这些属性映射到对象的键?或者我可以简化它并减少代码的其他方式。
我正在使用续集 ORM。
解决方案
我可以看到您已经在使用 body-parser 或其他类型的请求解析器(显然),因此您可以编写一个单行实用程序来执行此操作
## req.body = {a: 1, b:2, c:3, d:4}
let targetObj = {}
let keysYouWant = ['key1', 'key2']
Object.keys(req.body).forEach(key => { if (keysYouWant.includes(key)) targetObj[key] = req.body[key] })
但是 IFreq.body
具有与您在 targetObject 中想要的相同的键,那么您可以这样做
return BSRequest.create(req.body)
.then((bsRequest) => { ... })
.catch((error) => { ... })
推荐阅读
- python - 如何在python中返回void
- imagemagick - ImageMagick 如何将选项传递给 cwebp Linux
- android - Tasker:在 xml 文件中编辑 android 应用程序的设置
- storage - 我正在尝试使用rocksdb作为存储后端进行缓存
- mysql - Spring Boot MySQL Docker 引起:java.net.ConnectException:连接被拒绝(连接被拒绝)
- javascript - 无法从本地文件系统加载 pdf (IONIC 4 - Android)
- optimization - 为什么我的移动平均算法这么慢?
- saml - Weblogic12c 使用 ADFS 配置 SAML SSO
- python-3.x - 如何从打字模块导入列表以识别类中的类型列表[int]?
- android - 当我们在 Android 10 中将 xfermode 用作 PorterDuffXfermode(PorterDuff.Mode.DARKEN) 时,绘制不可见