如何在Node.js中解析/标记化SQL语句

 朱甜520_322 发布于 2022-12-29 18:47

我正在寻找一种在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中适应的开源项目)......

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有