【发布时间】:2021-11-09 09:41:20
【问题描述】:
我对 express-js 还很陌生,所以这个问题可能看起来很傻,但是环顾四周,我找不到一个优雅的答案。
对于处理 post 或 put 方法的给定路由,我希望能够删除所有未指定的属性。例如,如果有一个创建 obj 的 post 请求为:
{
title: "some title",
user: "some user",
body: "post body",
_id: "1332433242343",
}
我希望能够拥有一个只接受我需要的属性的中间件,例如:
(req, res, next) => {
const { title, user, body } = req.body;
clean_request = { title: title, user: user, body: body, };
}
原因是不是恶意代理,可以操纵内部数据库数据,因为_id属性是数据库的用户,它可以由请求者设置。
我正在使用 express-validate 来验证我的属性,但到目前为止,我还没有找到一种方法可以完全删除属性并只保留我需要的属性。
再次感谢您的任何建议。 ^^
【问题讨论】:
-
您可以使用class-transformer 和class-validator。
class-transformer使用excludeExtraneousValues删除所有其他属性 -
谢谢你,我希望我能把你的评论作为答案。
标签: javascript node.js express validation express-validator