【问题标题】:using html5 standalone app using deskshell to connect to mysql使用 html5 独立应用程序使用deskshell 连接到mysql
【发布时间】:2014-01-29 01:11:11
【问题描述】:

我正在使用 deskshell 制作小型独立 html 5 应用程序,我想使用 MySQL 数据库。如何在不使用 PHP 或服务器端语言的情况下从 JavaScript 连接到 MySQL?

【问题讨论】:

  • 您阅读过deskshell 演示/示例吗?在这种情况下,JavaScript 是服务器端语言(实际上是 Node.js)。
  • 要持久化数据,有一个在同一端口上运行的示例。我试过它的工作原理。它使用 websql 来存储和检索数据,同时为数据创建一个持久文件夹,但是如果我们删除数据文件夹,它将消失。所以需要连接mysql。所以无论如何要使用任何js或任何东西直接从javascript连接到在本地机器上运行的服务器mysql或mysql?
  • npmjs.org/search?q=mysql 同样,在这种情况下 JavaScript IS 服务器端语言。默认情况下,它在您的应用文件夹中命名为 app.js,这是一个 Node.js 脚本。
  • 你必须先npm install mysql,然后才能require("mysql")——看来你对Node.js很不熟悉。我建议你先了解它,然后继续使用 DeskShell,因为 DeskShell 是基于 Node.js 构建的。
  • @ronvinet 我知道现在已经一年多了,但你能指出我的例子吗???我没有在 DeskShell 示例下看到它?简而言之:我正在尝试复制在线注册以进行离线检查,并且我必须更新存在的用户。我当前的工作设置是一个巨大的 xampp+wordpress 设置。

标签: mysql html node.js appjs


【解决方案1】:

这绝对可以使用deskshell。什么是服务器,什么是客户端等可能有点令人困惑。通常它比您最初想象的要简单得多。

我建议采用以下方法。 Deskshell 使用未经修改的 nodejs 二进制文件。因此,为了让生活更简单,首先安装节点(因此它会为您设置路径等所有内容)。然后使用 npm - 节点包管理器安装一个允许您连接到 mysql 的模块。你可以去npm网站搜索mysql。当你找到一个包时,你可以 npm install packagename。之后您可以使用 npm remove packagename 删除。 (检查网站以了解确切的语法)。

因此,使用这种方法并从模块主页复制和修改示例,您应该能够让 nodejs 连接到 mysql 并运行一些查询。

下一步就是将这个“数据库功能”添加到您的应用程序中。在这里,您应该意识到您有 2 个 javascript 引擎正在运行。您有一个在 chrome 浏览器中运行的“沙盒”v8 js 引擎,然后您有第二个“未沙盒”v8 nodejs 将运行您的 app.js 文件。我发现连接两者的最简单和最令人愉悦的方法是使用 websocket 将消息从一个 v8 发送到另一个。然后,您可以决定编写您的小 api 的抽象级别。因此,您可以在浏览器脚本中编写所有逻辑,将 sql ocer 发送到套接字,nodejs app.js 脚本然后接收消息,查询 mysql 并以 json 形式返回结果。另一种方法是您向 api 询问 20 个用户对象,它将请求转换为 sql 并为您执行并将其返回给浏览器。

您需要将 node_modules/packagename 文件夹作为 node_modules/packagename 复制到您的应用程序目录。此外,您可能需要将您的桌面代码从 require ("packagename") 更改为 require ("./path/to/package/folder")

如果您的应用程序不使用单独的服务器,我建议您考虑使用 sqlite3 作为数据库引擎。这是因为 sqlite3 是基于进程数据库的文件,因此您不必在最终用户机器上运行服务器进程。但是,如果您要连接到现有的服务器数据库,那么 mysql 是更好的选择。

【讨论】:

  • 我不介意使用 sqlite3。我没有得到这部分---n另外你可能需要将你的deskshell代码从require(“packagename”)更改为require(“./path/to/package/folder”)---在.desk文件中我需要做些什么改变。你能写我需要改变路径的参数吗?如果我使用 sqlite3,我需要建立套接字连接吗? @sihorton。
  • 可能值得一试electronjs.org 并改用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
  • 2012-05-18
  • 2019-09-24
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
相关资源
最近更新 更多