javascript - 从nodeJS连接到mysql,完全没有依赖关系
问题描述
我在这里以及 npm 库https://www.npmjs.com/package/mysql上看到了各种问题
这甚至是 w3schools 推荐的,但我无法找到任何关于从纯原生 nodejs 制作 mysql 客户端的信息(仅在需要时使用 .net 模块)
知道 mysql 不通过 http 请求进行通信,而是通过其他类型的套接字进行通信,我无法找到该协议的规范,也没有任何解释如何使用 nodejs 实现它的教程
解决方案
MySQL 客户端/服务器协议记录在这里:
https://dev.mysql.com/doc/internals/en/client-server-protocol.html
这是我知道的唯一资源。我知道它已经过时了,但其中的概念是一个很好的介绍。
坦率地说,每个开发自己的 MySQL 协议实现的项目都是通过阅读代码来实现的。根据定义,代码是协议的最准确和最新的表示。
MySQL 协议的更改是增量的。您从该文档中学到的内容将帮助您理解代码。
这不是那种有教程的项目。潜在读者的受众如此之少,以至于不值得开发教程。
我知道 MySQL 协议的一些实现。例如:
- libmysqlclient,这是 MySQL 源代码中包含的客户端库。这是用 C 写的。
- PHP 的 mysqlnd 扩展,也是用 C 编写的,但它是一个单独的实现,因为它的许可不同。
- MySQL Connector/J,它是客户端的 Java 实现。
- mysqljs,它是 100% javascript 中 MySQL 协议的 Node.js 实现。这可能正是您打算开发的。但从技术上讲,使用它是一种依赖。
坦率地说,我只会使用现有的实现之一。即使您已经对协议有深入的了解,开发一个新的实现也必然需要几个月的时间。是一丝不苟的工作。
推荐阅读
- pandas - 如何将数据类型从 int 转换为 Pandas 中年份列的日期时间
- r - 按最后两位数字过滤日期
- vulkan - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT VkAccessFlags 设置为 0?
- python - 你能改变 pyinstaller 认为 python.exe 所在的路径吗?
- sql-server-2014 - SQL Server 2014 安装 - 收到“找不到数据库引擎启动句柄”。
- spring-data-jpa - 回答的结果时间很长,使用jpa时如何减少它?
- javascript - 提取价格并使用 javascript 和节点将其注册为变量?
- amazon-web-services - -bash: ssh-i: 找不到命令
- javascript - 如何在文档中查询 Firestore 搜索名称?
- java - 如何使用按钮创建组件并放置在 xml 页面上?