我正在使用desktopshell制作小型独立 html 5 应用程序,我想使用 MySQL 数据库。如何在不使用 PHP 或服务器端语言的情况下从 JavaScript 连接到 MySQL?
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 是更好的选择。