我正在寻找一种在Node.js应用程序中解析/标记SQL语句的方法,以便:
对ISO/IEC 9075标准或此处定义的所有"基础"SQL关键字进行标记.
验证SQL语法.
找出查询将要做什么(例如读或写?).
你有任何解决方案或建议偷看?
链接:任何Javascript/Jquery库验证SQL语句?
我做过研究,发现了一些方法:
使用现有的node.js库
我进行了谷歌搜索,但没有找到一个可以使用的自愿和流行的图书馆.我找到了那些:
simple-sql-parser(github上22颗星,npm每日16次下载)
仅支持SELECT,INSERT,UPDATE和DELETE
路上有一个v2分支
sql-parser(github上90颗星,npm每日下载6次)
仅支持基本的SELECT语句
基于jison
sqljs(github上17星,npm每日下载5次)
v0.0.0-3,正在开发中...根本没有文档:)
不幸的是,这些库中没有一个是完整和可靠的.
基于node.js低级标记化库自己完成
我可以使用低级标记器库来完成自己的工作,例如:
jison(1,457星星github上,每日下载量240 NPM)
标记生成器(44分上github上,每日下载10 NPM)
基于现有的Javascript代码美化自己做
CodeMirror是一个非常酷的Javascript库(浏览器端),可以识别SQL关键字,字符串等.检查演示.
我可以基于CodeMirror构建一个node.js库标记器.在SQL模式是这里github上,我也许可以适应它到节点的应用程序中获得令牌.
PS:CodeMirror在github上有5,046颗星,维护得很好.
我发现存在2个不同的问题:标记化和语法验证(与标记化有关).
我根据优秀的CodeMirror的SQL模式(github上的5,046颗星,维护得很好)使自己成为Node.js 的SQL标记器.CodeMirror的SQL模式负责"通用"SQL和一些SQL特性,如MSSQL,MySQL,PL/SQL,Cassandra,Hive和MariaDB.
当我的项目足够成熟时,我(可能)会在GitHub上公开并让你知道.
关于SQL语法验证,我发现没有JavaScript工具(或者在JS中适应的开源项目)......