如何从反应查询生成器输出 json 解析或生成动态 SQL



对于我的一个项目,我们使用react-querybuilder lib,最终结果将被发送到服务器以相应地过滤数据,我的后端使用Sequelize,Express与JavaScript。

我关心的是如何从反应查询构建器的输出 json 进行 sql 查询或 Sequelize 命令

输出 json 如下所示-

{
"combinator": "and",
"rules": [
{
"field": "first_name",
"operator": "beginsWith",
"value": "Stev",
},
{
"field": "last_name",
"operator": "in",
"value": "Vai, Vaughan",
},
],
}

我可以使用 formatQuery 从中制作 sql,但这会引起任何安全问题,或者是否有其他适当的方法可以在后端实现它?

>formatQuery可以生成具有内联值的 SQLWHERE子句,也可以生成可由数据库客户机用作绑定变量的参数化值。参数化格式可以大大降低(但不能消除!)SQL注入攻击的风险。

如果您使用的是直接 SQL,我建议您使用parameterizedparameterized_named格式,但对于 Sequelize,我不知道formatQuery是否真的会有所帮助。您可能需要创建自己的转换器才能从 RQB 转换为 Sequelize。

另外(我希望这在这里是合适的),我为react-querybuilder创建了一个培训课程,涵盖了基于服务器和客户端的 SQL 生成。它被称为在 React 中构建高级管理报告。

最新更新