不管是 localStorage,还是 SQLite,都将数据保存在本地,而且无法多台电脑共享(除非将数据库文件复制到其他的电脑中)。如果想让数据在多台电脑之间共享,而且支持更复杂的操作,如锁定某张表或某条记录、防止脏数据等,可以使用网络关系型数据库,其中 MySQL 是这类数据库的代表,用户基数非常大。本节将会讲解如何直接在 Electron 中连接 MySQL 数据库。
几乎所有的 Web 应用以及桌面管理系统,都是在服务端访问数据库,然后将数据通过 HTTP(S) 返回给客户端,客户端并不直接与数据库交互。但对于某些应用,如 DBMS(数据库管理系统),需要直接与数据库交互,这样就需要在客户端直接与服务端的数据库交互,也称为数据库的直连。
20.1 安装 mysql 模块
在 Node.js 中访问 MySQL 数据库需要使用 mysql 模块,该模块不是 Node.js 的标准模块,因此需要在 Electron 工程根目录执行下面的命令安装。
npm install --save mysql
mysql 模块是纯的 JavaScript 实现的,不存在兼容性问题,在 Node.js 和 Electron 中都可以使用。而且 mysql 模块操作 MySQL 数据库执行的是网络操作,用任何编程语言实现的效率差不多,并不会因为是用 JavaScript 实现的而降低操作 MySQL 数据库的效率。
首先用下面的代码导入 mysql 模块。
const mysql = require('mysql');
然后使用下面的代码连接 MySQL 数据库。
conn = mysql.createConnection({
host: MySQL服务器的IP或域名,
user: 用户名,
password: 密码,
database: 数据库名,
port: 3306 //MySQL 的默认端口号
});
接下来可以使用 conn.query 方法执行 SQL 语句。
20.2 使用 mysql 模块操作 MySQL 数据库
下面给出一个完整的案例,用来演示如何使用 mysql 模块操作 MySQL 数据库。
(1)首先编写主页面(index.html)的代码。