本文主要是讲解一下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命令时可能会报如下错误
本文主要讲解了egg.js中mysql数据的连接方式,下节我们简单的介绍一下数据库的增删改查操作。