能否将React Awesome Builder(JS)与MySQL结合使用?具体如何实现?
实现逻辑说明
调用流程注意事项
不要直接把前端生成的SQL字符串放到fetch/Axios请求中发送,这会导致极高的SQL注入风险,正确的链路是:
- 前端通过query builder导出结构化的查询规则JSON对象,而非直接生成完整SQL字符串,将该JSON作为请求参数传给后端接口
- 后端接收参数后,使用服务端的SQL构造工具校验、拼接生成合法的可执行SQL语句,再通过数据库连接执行查询
Node.js MySQL依赖使用说明
是否需要使用该类库取决于你的后端技术栈:
- 若你采用Node.js作为后端开发语言,就需要使用对应的MySQL连接库来建立数据库连接、执行SQL、返回查询结果给前端
- 若后端使用Java、Python、Go等其他技术栈,使用对应语言的MySQL连接组件即可,无需引入Node.js相关的MySQL依赖
示例条件的MySQL查询实现
你提供的筛选条件需要配合表关联逻辑才能正常执行,以下是参考写法,可根据实际业务调整表名、关联字段、返回字段:
-- 替换为实际需要返回的字段列表 SELECT t1.*, user.firstName, results.product, results.score, cars.vendor, cars.year FROM 主表名 t1 -- 补全各关联表的JOIN逻辑 INNER JOIN user ON t1.user_id = user.id INNER JOIN results ON t1.result_id = results.id INNER JOIN cars ON t1.car_id = cars.id WHERE t1.login = LOWER(user.firstName) AND stock = FALSE AND slider = 35 AND (results.product = 'abc' AND results.score > 8) AND (cars.vendor = 'Toyota' AND cars.year >= 2010);
如果涉及一对多的表关联,可根据需求添加DISTINCT或者GROUP BY语句避免返回重复数据。
内容的提问来源于stack exchange,提问作者Samuel Morgan-Tyghe
相关产品推荐
相关产品推荐

