首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Node.js中解析/标记SQL语句

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

Stack Overflow用户
提问于 2014-08-06 09:16:37
回答 4查看 17.5K关注 0票数 20

我正在寻找一种在Node.js应用程序中解析/标记SQL语句的方法,以便:

  • 标记ISO/IEC 9075标准或这里中定义的所有“基础”SQL关键字。
  • 验证SQL语法。
  • 找出查询要做什么(例如读还是写?)。

你有什么解决办法或建议吗?

链接:是否有任何Javascript/Jquery来验证SQL语句?

我做过研究,找到了一些方法:

使用现有的node.js库

我做了一个谷歌搜索,但我没有找到一个可以使用的共识和流行的库。我找到了那些:

  • 平方尺 ( github上17颗星,npm上每天下载5次)
    • v0.0.0-3,正在开发中.完全没有文件:)

不幸的是,这些库中没有一个是完整和可信的。

基于node.js低级令牌程序库亲自完成了该任务。

我可以用一个低级的令牌程序库来实现它,比如:

基于现有的Javascript代码美化器自己做的

CodeMirror是一个非常酷的Javascript库(浏览器端),它可以识别SQL关键字、字符串等。请检查演示

我可以构建一个基于node.js的CodeMirror库标记器。SQL模式在github上,我可以对其进行调整,以便在节点应用程序中获取令牌。

PS:CodeMirrorgithub上有5046颗恒星,并且保养良好。

我发现有两个截然不同的问题:令牌化和语法验证(这与令牌化相关)。

我根据优秀的SQL模式 ( github上的5,046颗星,维护良好)为Node.js设计了一个Node.js的SQL令牌程序。CodeMirror的SQL模式负责“通用”SQL和一些SQL特性,如MSSQLMySQLPL/SQL卡桑德拉、Hive和MariaDB

当我的项目足够成熟时,我(可能)会将它公开在GitHub上,并让您知道。

关于SQL语法验证,我还没有发现JavaScript工具(或者在JS中适应的开源项目).

EN

Stack Overflow用户

发布于 2014-08-16 20:17:18

如果您想要开发自己的SQL解析器,我将推荐一个PEG设计解析器。我在编译到js/编译到c语言中使用了一个PEG解析器,它产生了一个非常清晰和容易实现的代码。检查:https://github.com/luciotato/LiteScript

您可以从LiteScript解析器开始,如果:( a)这个解析器是应用程序的一个重要部分,b)最终您将需要本机执行速度解析。

但是,如果这不是您正在开发的应用程序的一个重要部分,那么为现有的特定sql解析器做出贡献可能是最好的选择。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25156505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档