精华 mysql-querier: SQL 查询构造器
发布于 10 年前 作者 jysperm 4515 次浏览 最后一次编辑是 8 年前 来自 分享

https://www.npmjs.com/package/mysql-querier https://github.com/jysperm/mysql-querier

这个包是为了解决这样的场景,有时项目比较简单,就决定不上 ORM 了,往 MySQL 写数据倒是简单,反正一共没几个地方,但是查数据就不太好办了,尤其是在前后端分离的情况下,写后端的时候不太容易预计到前端到底需要以何种方式查询。于是我实现了一个简单的包,接受一个 JSON, 返回一个 SQL, 通过这个包可以在后端简单地定义允许前端通过哪些字段查询,从前端发来的 JSON 构造查询。

querier = require 'mysql-querier'

userQuerier = querier 'users',
  user_id:
    number: true
  role:
    enum: ['admin', 'user']

app.get '/user/query', (req, res) ->
  mysql.query userQuerier(req.query), (err, rows) ->
    res.json rows

目前只有一点我不是很满意的地方,就是没有办法定义结果中不包含哪些字段,似乎 MySQL 没有提供这样的功能(只能指定要查的字段,不能排除某些字段)。

因为是几个小时写的东西,还没有在生产环境检验过,我只能说尽可能考虑的注入的问题,并且测试覆盖了大部分分支。

回到顶部