现在,当我想向数据库添加对象时,请执行以下操作:
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。
答案 0 :(得分:1)
我可以看到您已经在使用body解析器或某种其他类型的请求解析器(显然),因此您只需编写一个单行实用程序即可
## 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] })
但是如果req.body
具有与targetObject中想要的键相同的键,则只需执行此操作
return BSRequest.create(req.body)
.then((bsRequest) => { ... })
.catch((error) => { ... })
答案 1 :(得分:0)
是的,我们具有es6扩展功能。请检查此link
注意:req.body
中的所有值都将被传递
return BSRequest.create({...req.body}).then(bsRequest => res.status(201).send(bsRequest)).catch(error => res.status(400).send(error));
答案 2 :(得分:0)
如果req.body和数据库数据库模型密钥相同,则只需编写
return BSRequest.create(req.body).then(bsRequest => res.status(201).send(bsRequest)) .catch(error => res.status(400).send(error));
注释:我不建议您将req.body中的值直接存储到数据库中。对于从前端获取的值,请务必包含type-check
,然后再将其保存到数据库中。您可以通过对Akshay的答案进行一些修改来做到这一点。