P12:中台搭建4-Egg.js中连接mysql数据库
本文主要是讲解一下 Egg.js 中使用 mysql 数据库,那需要你的 mysql 数据有基础的了解,比如说一些常用的 sql 语句和安装。但是如果你说我真不会,也是可以跟着我的笔记作下来的,但只是能做出效果,对于里边的为什么可能不太了解。还是需要你自己补齐一下 mysql 的基础知识啊。我还建议,如果你对 mysql 不熟悉,还是暂停学习一下,找一套相关的 mysql 最新教程学习一下,这样你接下来的学习才会更简单。
egg-mysql 模块安装
如果要在 egg.js 中使用 mysql 数据库,那需要先进行安装egg-mysql
模块,这个模块你可以使用 npm 或者 yarn 来进行安装。
npm 安装命令如下:
npm install egg-mysql --save
yarn 安装命令如下:
yarn add egg-mysql
安装完成可以到package.json
中看一下,是否有这个文件。我安装的版本是 3.0.0 版本。你学的时候,这个版本可能所有变化。
进行插件配置
在安装完成以后,还不能正常使用,egg.js 要求我们对于外部模块在plugin.js
中进行配置。配置方法如下:
文件/server/config/plugin.js
exports.mysql = { enable: true, package: 'egg-mysql', };
这个配置完,也就说明 egg.js 可以支持 mysql 数据库的使用和连接了。
plugin.js 全部代码如下:
'use strict'; exports.mysql = { enable: true, package: 'egg-mysql', };
以后还会多次配置这个文件,所以我们这里要对这个config.js
有所印象,它的作用就是配置 egg.js 项目的。
数据库连接配置
这个配置时,你要先确认你已经有一台安装 mysql 的服务器或者是主机,当然你也可以在自己的开发机上进行安装,因为我使用的php Study
这个集成开发环境(作 php 用的)。所以我的机器上是安装的。
打开/config/config.default.js 文件,作下面的配置(这段配置你可以在npmjs 网址中搜索 egg-mysql 找到这个配置)
exports.mysql = { // database configuration client: { // host host: 'mysql.com', // port port: '3306', // username user: 'test_user', // password password: 'test_password', // database database: 'test', }, // load into app, default is open app: true, // load into agent, default is close agent: false, };
这时候你需要根据你的环境,修改对应的参数,主要的就是host
、user
、password
和database
(每个数据库配置不同,所以这个每个人都不同)。 我的是这样的,但是你不一定完全跟我一样。
config.mysql = { // database configuration client: { // host host: 'localhost', // port port: '3306', // username user: 'root', // password password: '12345678', // database database: 'react_blog', }, // load into app, default is open app: true, // load into agent, default is close agent: false, };
这个配置完成后,就可以连接到数据库了。
创建数据库
现在我们还没有数据库,所以需要先建立数据库,直接使用PhP Study
里的SQL_Front
来管理数据,如果你没有安装需要安装一下,安装完成后点后面的管理按钮,就可以管理了,具体步骤如下:
这里我默认你是安装了PhP Study
,打开软件并启动 MySQL
点击数据库工具里SQL_Front
来管理数据(没有安装的可以到软件管理中下载安装,很方便的)
打开后选择新建
输入相关信息
登录数据库
新建数据库,名称为react_blog
,输入数据库名称,点击确定,我们的数据库就创建好了。
选择我们刚刚创建好的数据库,新创建一个表blog_content
为表添加字段,字段就是title
、type
、introduce
(类型 Text)和content
(类型 Text)
这样数据库的准备就写好了,如下图:
然后我们随便放一条数据,并点击 “发布” 按钮即可。
接下来需要验证一下,数据库是否已经连接上了。
使用 get 进行表的查询
打开之前写的/app/controller/defalut/home.js
文件,改写index
方法。
'use strict'; const Controller = require('egg').Controller; class HomeController extends Controller { async index() { // 获取用户表的数据 const result = await this.app.mysql.get('blog_content', {}); console.log(result); this.ctx.body = result; } } module.exports = HomeController;
改写后,在浏览器中输入http://127.0.0.1:7001/default/index
。如果能在控制台打印出结果和页面中显示结果,说明数据库已经连接成功了。
注意:
在测试数据库连接时运行 npm run dev 命令时可能会报如下错误
大家可以参考这篇文章解决1045 Access denied for user ‘root’@’localhost’ (using password: YES)的解决方法
本文主要讲解了 egg.js 中 mysql 数据的连接方式,下节我们简单的介绍一下数据库的增删改查操作。
码云笔记 » P12:中台搭建4-Egg.js中连接mysql数据库