前端应传结构化JSON过滤协议,后端通过规则驱动映射为参数化SQL片段;需强制字段白名单、操作符枚举、值校验及预编译绑定,确保安全可扩展。

前端筛选条件最终要转成后端可执行的 SQL WHERE 子句,关键不在“怎么拼字符串”,而在于“安全、可维护、能扩展地桥接前后端语义”。核心思路是:前端传结构化过滤描述,后端按规则映射为参数化 SQL 片段。
前端传什么:定义清晰的过滤协议
避免直接传 raw SQL 或字段名+值对。推荐用轻量 JSON 描述意图,例如:
- 字段名(限定白名单,如 user_name、created_at、status)
- 操作符(如 eq、like、gt、in、between)
- 值(单值或数组,不参与 SQL 拼接,只作参数绑定)
示例请求体:
{
"filters": [
{"field": "status", "op": "eq", "value": "active"},
{"field": "created_at", "op": "between", "value": ["2024-01-01", "2024-06-30"]},
{"field": "user_name", "op": "like", "value": "%admin%"}
]
}登录后复制
后端怎么做:规则驱动的 SQL 片段生成
不硬编码 if-else,而是用配置或策略模式将字段→SQL 行为映射起来。例如:
立即学习“前端免费学习笔记(深入)”;
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~