将 req.body 属性映射到对象键
Mapping req.body properties to object key
现在,当我想向数据库中添加一个对象时,我会执行以下操作:
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
的属性,以便将这些映射到对象的键?或者其他一些我可以简化它并减少代码的方法。
我正在使用 sequelize ORM。
是的,我们有 es6 传播功能this.Kindly检查这个link
注意:req.body
内的所有值都将被传递
return BSRequest.create({...req.body}).then(bsRequest => res.status(201).send(bsRequest)).catch(error => res.status(400).send(error));
我可以看到您已经在使用 body-parser 或某种其他类型的请求解析器(显然),因此您只需编写一个 one-liner 实用程序来执行此操作
## 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) => { ... })
如果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 的回答进行一些修改来做到这一点。
现在,当我想向数据库中添加一个对象时,我会执行以下操作:
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
的属性,以便将这些映射到对象的键?或者其他一些我可以简化它并减少代码的方法。
我正在使用 sequelize ORM。
是的,我们有 es6 传播功能this.Kindly检查这个link
注意:req.body
内的所有值都将被传递
return BSRequest.create({...req.body}).then(bsRequest => res.status(201).send(bsRequest)).catch(error => res.status(400).send(error));
我可以看到您已经在使用 body-parser 或某种其他类型的请求解析器(显然),因此您只需编写一个 one-liner 实用程序来执行此操作
## 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) => { ... })
如果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 的回答进行一些修改来做到这一点。