JavaScript 可以连接 MySQL 吗?

IT技术 javascript mysql ajax json
2021-01-24 00:05:37

JavaScript 可以连接 MySQL 吗?如果是这样,如何?

6个回答

如果没有某种桥接器,客户端 JavaScript 就无法访问 MySQL。但是上面关于 JavaScript 只是一种客户端语言的大胆声明是不正确的——JavaScript 可以在客户端和服务器端运行,就像 Node.js 一样。

Node.js 可以通过类似https://github.com/sidorares/node-mysql2 的方式访问 MySQL

你也可以使用 Socket.IO 开发一些东西

你的意思是问客户端JS应用程序是否可以访问MySQL?我不确定这样的库是否存在,但它们是可能的。

编辑:自写作以来,我们现在有了MySQL 集群

Node.js 的 MySQL 集群 JavaScript 驱动程序就像它听起来的那样——它是一个连接器,可以直接从你的 JavaScript 代码中调用来读取和写入你的数据。由于它直接访问数据节点,因此通过 MySQL 服务器没有额外的延迟,并且需要从 JavaScript 代码//对象转换为 SQL 操作。如果出于某种原因,您希望它通过 MySQL 服务器(例如,如果您将表存储在 InnoDB 中),则可以对其进行配置。

  • JSDB为 DB 提供了一个 JS 接口。

  • 来自 sindresorhus 的精选的 Node.js数据库包

如果要使用 JavaScript 连接到 MySQL 数据库,可以使用 Node.js 和名为mysql的库您可以创建查询,并以寄存器数组的形式获取结果。如果你想尝试,你可以使用我的项目生成器创建一个后端并选择MySQL作为连接的数据库。然后,只需将您的新REST APIGraphQL端点公开到您的前端并开始使用您的 MySQL 数据库。


怀旧留下的旧答案

然后

根据我对问题的理解并纠正我,如果我错了,它指的是仅在客户端使用 JavaScript 的经典服务器模型。在这款经典机型,与LAMP服务器(Linux操作系统,Apache,MySQL和PHP)与数据库中的联系人的语言是PHP,所以请求数据,你需要编写PHP脚本和数据库呼应的将数据返回到客户端。基本上,根据物理机器的语言分布是:

  1. 服务器端: PHP 和 MySQL。
  2. 客户端: HTML/CSS 和 JavaScript。

这回答了我们具有以下功能的 MVC 模型(模型、视图、控制器):

  1. 模型:模型处理数据,在这种情况下,是管理变量或访问存储的数据的 PHP 脚本,在这种情况下,在我们的 MySQL 数据库中,并将其作为 JSON 数据发送到客户端。
  2. VIEW:视图就是我们所看到的,它应该完全独立于模型。它只需要显示模型中包含的数据,但不应包含相关数据。在这种情况下,视图使用 HTML 和 CSS。HTML 创建视图的基本结构,CSS 为这个基本结构赋予形状。
  3. 控制器:控制器是我们的模型和视图之间的接口。在这种情况下,使用的语言是 JavaScript,它将模型作为 JSON 包发送给我们的数据放入提供 HTML 结构的容器中。控制器与模型交互的方式是使用AJAX我们使用GETPOST方法在服务器端调用 PHP 脚本并捕获从服务器返回的数据。

对于控制器,我们有非常有趣的工具,如jQuery,作为控制 HTML 结构 (DOM) 的“低级”库,然后是新的、更高级的工具,如Knockout.js,允许我们创建连接不同的观察者DOM 元素在事件发生时更新它们。Google 的Angular.js以类似的方式工作,但似乎是一个完整的环境。为了帮助您在其中进行选择,这里有两个对这两个工具的出色分析:Knockout 与 Angular.jsKnockout.js 与 Angular.js我还在读书。希望他们能帮助你。

现在

在基于 Node.js 的现代服务器中,我们对一切都使用 JavaScript。Node.js 是一个 JavaScript 环境,其中包含许多与 Google V8、Chrome JavaScript 引擎配合使用的库。我们使用这些新服务器的方式是:

  1. Node.jsExpress构建服务器的大型机。我们可以用几行代码创建一个服务器,甚至可以使用像 Express 这样的库来更容易地创建服务器。使用 Node.js 和 Express,我们将管理从客户端到服务器的请求,并用适当的页面回答它们。
  2. Jade为了创建页面,我们使用模板语言,在这种情况下,Jade,它允许我们像编写 HTML 一样编写网页,但有所不同(这需要一点时间,但很容易学习)。然后,在响应客户端请求的服务器代码中,我们只需要将 Jade 代码渲染成“真正的”HTML 代码。
  3. 手写笔类似于 Jade,但用于 CSS。在这种情况下,我们使用中间件函数将手写笔文件转换为我们页面的真实 CSS 文件。

然后我们有很多包,我们可以使用NPM(Node.js 包管理器)安装并直接在我们的 Node.js 服务器中使用它们,只需要它(对于那些想要学习 Node.js 的人,试试这个初学者教程概述)。在这些包中,您有一些可以访问数据库。使用它,您可以在服务器端使用 JavaScript 来访问我的 SQL 数据库。

但是,如果您打算使用 Node.js,您可以做的最好的事情是使用基于 JSON 文件的新 NoSQL 数据库,例如MongoDB它不像 MySQL 那样存储表,而是将数据存储在 JSON 结构中,因此您可以将不同的数据放入每个结构中,例如长数值向量,而不是为最大的大小创建巨大的表。

我希望这个简短的解释对您有用,如果您想了解更多信息,这里有一些您可以使用的资源:

  • Egghead:这个站点充满了关于 JavaScript 及其环境的简短教程。值得一试。并且不时打折。
  • 代码学校:提供关于 Chrome 开发者工具的免费且非常有趣的课程,可帮助您测试客户端。
  • Codecademy:提供有关 HTML、CSS、JavaScript、jQuery 和 PHP 的免费课程,您可以通过在线示例进行学习。
  • 10gen 教育:在不同语言的教程中包含您需要了解的有关 MongoDB 的所有信息。
  • W3Schools:这个有关于所有这些的教程,您可以将其用作参考位置,因为它有很多非常有用的短代码示例。
  • Udacity:一个提供关于不同主题的免费视频课程的地方,其中有一些关于 Web 开发的有趣课程和我最喜欢的,一个很棒的 WebGL 课程,用于使用 JavaScript 进行 3D 图形。

我希望它可以帮助你开始。

玩得开心!

重新“然后”:服务器端使用的 JavaScript 可以追溯到 1995 年,当时它被包含在 Netscape Enterprise Server 中。此后不久,Microsoft 将“JScript”放入其 IIS 服务器中。从远程来看,服务器上的 JavaScript 并不是新的。
2021-03-13 00:05:37
很好的详细答案解释了机制。
2021-03-14 00:05:37
我认为如果这个答案在顶部有最新信息或者只是删除旧的过时信息会很好。它也有点冗长,侧重于特定的语言。简短的回答是,JavaScript 可用于直接从 Node.JS(或其他服务器端运行时环境)连接到 MySQL 数据库,但不能从浏览器中连接,因为浏览器是故意安全的。
2021-03-21 00:05:37
谢谢:) 我刚刚在答案的末尾添加了一个更新来解决问题。您可以使用带有名为“mysql”的库的节点服务器,并且我添加了一个指向我创建的 API 生成器的链接,您可以使用它来启动一个新的 API 项目。希望能帮助到你。
2021-04-10 00:05:37

不,JavaScript 不能直接连接到 MySQL。但是您可以将 JS 与 PHP 混合使用。

JavaScript 是一种客户端语言,您的 MySQL 数据库将在服务器上运行

不过,我不会称之为“将 JS 与 PHP 混合”。您可以做的是让 PHP 代码生成它预先从 MySQL 检索的 JavaScript 代码/数据(json,例如)。或者你可以在服务器上使用 PHP 来提供一个 http(json/REST/SOAP/...whatever) 接口来访问 php 代码从 MySQL 检索的数据——这个 http 接口可以被运行在任何地方的 JavaScript 代码调用,主要是浏览器。截至今天,还说 JavaScript 是客户端不再是最新的了 - 例如检查 Node.js。
2021-03-21 00:05:37
对于访问您的站点的所有浏览器来说,在本地拥有直接访问您的 MySQL 服务器的 javascript 文件,这难道不是一种安全风险吗?
2021-03-21 00:05:37
使用新版本的mysql 5.7 httpclient 可以使用http 插件直接与mysql 数据库通信(为mysql 5.7 构建)
2021-04-01 00:05:37
“JavaScript 是一种客户端语言” 不一定:与 Java 一样。
2021-04-02 00:05:37
小提示:JavaScript 在客户端运行的事实与它无法连接到数据库服务器的事实无关。该语言的未来版本可能会添加 API 来访问远程数据库(尽管可能性很小)。
2021-04-11 00:05:37

有点晚了,但最近我发现 MySql 5.7 获得了 http 插件,用户现在可以直接连接到 mysql。

为 mysql 5.7 寻找 Http 客户端

我认为您需要在等式中添加诸如 PHP 之类的东西。PHP 与数据库交互,然后您可以使用 Javascript 进行 AJAX 调用。