![](/img/trans.png)
[英]Should a REST API server received JSON data or a normal form data with PUT?
[英]REST API: PUT but no need all data in json
这是我的控制器更新放置用户数据。 控制器最多可接受4个值。 如果我只给这条路线发一个名字,我想这样做。这只会改变名字,其余的将保持不变。 (它不会是空的)。 是否有可能做到这一点? 我是否必须在redux-saga中执行此操作,即如果它是空的,请将其更新
// Update basic User's Data
exports.setUserdata = (req, res) => {
const id = req.params.userId;
User.update(
{
password: req.body.password,
name: req.body.name,
surname: req.body.surname,
email: req.body.email,
},
{ where: { id } },
)
.then(() => {
res.status(200).json({ success: true });
})
.catch(() => {
res.status(500).json({ error: 'Internal server error' });
});
};
传递要更新的参数并且不传递其他密钥。
如果req.body
只包含name
密钥,您可以从req.body
这4个密钥。
const updateParams = _.pick(req.body, ['name', 'password', 'surname', 'email'])
User.update(updateParams, { where: { id } })
如果req.body
具有值为null
或undefined
其他属性,则可以在拾取后对其进行过滤。
const updateParams = _.chain(req.body).pick(['name', 'password', 'surname', 'email']).filter().value()
User.update(updateParams, { where: { id } })
当然这取决于您使用的ORM,但我相信大多数ORM都不会更新根本没有传递的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.