先给项目安装一个 mysql2 这个包,在我们的应用可以使用这个包提供的功能连接使用 MySQL 类型的数据仓库服务。在终端,项目所在目录的下面,执行一下 npm install mysql2@2.1.0
因为在项目里我们用了 TypeScript,所以下面可以再安装一下这个包的类型定义,这样编辑器就知道 mysql2 这个包里的什么东西是什么了。再执行一下 npm install types/mysql2 --save-dev
下面可以使用一下 mysql2 这个包连接到应用的数据仓库服务,在应用里先创建一个连接,然后可以重复使用这个连接。在这个连接里要设置连接的数据仓库服务的主机,端口号,用户名,密码之类的信息,这些东西可以放在应用的环境变量里。
打开项目里的 .env 这个文件,在里面定义创建数据服务连接需要用的几个环境变量。这些环境变量可以使用 MYSQL_ 作为前缀。MYSQL_HOST 是数据仓库主机,可以设置成 localhost,表示本地主机,因为应用的数据服务是在本地这台设备上运行的。
MYSQL_PORT 是服务的端口号,默认是 3306 ,再添加一个 MYSQL_USER 连接数据服务的时候使用的用户,可以用一下 root 这个用户。再添加一个 MYSQL_PASSWORD 设置一下这个用户的密码,这个 root 用户的密码是我们在安装 MySQL 的时候自己设置的。你可以根据自己的实际情况修改这个密码。
MYSQL_DATABASE 是应用要使用的数据仓库的名字,之前我们创建过一个叫 xb2_node 的数据仓库,让它作为应用的数据仓库。
再去设置一下应用的配置,打开 src/app/app.config 这个文件,这里可以从环境变量里导出数据仓库相关的配置, export const ,导出 MYSQL_HOST,MYSQL_PORT,MYSQL_USER,MYSQL_PASSWORD,还有 MYSQL_DATABASE,这些东西都来自 process.env
创建连接
然后再去创建一个数据服务连接,这个连接可以单独放在一个文件里,新建一个文件,放在 src/app/database 的下面 ,文件名是 mysql.ts。
在这个文件的一开始,先导入之前安装的 mysql2 这个包,导入进来起个名字叫 mysql,一会儿会使用这个 mysql 上的方法创建连接。
下面再从应用的配置里面导入几个需要的配置信息,需要 MYSQL_HOST,MYSQL_PORT,MYSQL_USER,MYSQL_PASSWORD,还有 MYSQL_DATABASE。 位置是上一级目录的上一级目录里的 app 下面的 app.config 。
然后再去创建一个数据服务连接,并且导出这个连接,这样在其它的地方就可以使用这个数据服务连接去操作数据仓库了。export 一个 connection ,这个连接用 mysql 上的 createConnection 方法创建,给它一个对象参数,在这个对象里配置一下连接,需要设置一下 host,就是数据服务的主机,用一下 MYSQL_HOST ,然后是 port 数据服务的端口号,这里用 parsetInt 处理一下 MYSQL_PORT 这个配置,把它转换成 10 进制的数字。
再设置一下 user,用户是 MYSQL_USER,还需要 password 用户的密码,MYSQL_PASSWORD ,最后再设置一下数据仓库,database,设置成 MYSQL_DATABASE。