这是我参与「第四届青训营」笔记创作活动的第3天
前言
这篇文章接着上一篇组队没有后端怎么办?教你用js的egg框架快速搭建后端(1),今天我来介绍一下怎么用egg连接mysql数据库。
安装
首先,连接mysql数据库,电脑上首先要有mysql环境。安装mysql就不在此处赘述了。 要让egg连接到mysql,需要额外安装一个框架。在命令行输入:
npm install egg-mysql
等待安装完成。
使用
在项目config目录下,找到config.default.js文件,在module.exports中加入如下代码:
config.mysql = {
client: {
// host
host: 'localhost',
// 端口号
port: '3306',
// 用户名
user: 'root',
// 密码
password: '123456',
// 数据库名
database: 'blog',
},
// 是否加载到 app 上,默认开启
app: true,
// 是否加载到 agent 上,默认关闭
agent: false,
}
这里面要配置的就是mysql的相关配置,包括host连接,端口号,用户名和密码,以及要连接到的那个数据库名上。 接下来,配置完毕之后就可以写相关代码了。 根据mvc架构,数据库操作最好放在service层中。我们在项目下创建一个server文件夹,在里面编写server层的代码。
// app/service/user.js
class UserService extends Service {
async find(uid) {
// 假如 我们拿到用户 id 从数据库获取用户详细信息
const user = await this.app.mysql.get('users', { id: 11 });
return { user };
}
}
egg-mysql中提供了很多api来操作数据库,可以不用编写sql代码。例如上面的例子就是使用了api来调用数据库。一般来说也推荐使用api调用的方式来防止sql注入。当然,在特殊情况下你也可以使用sql语句来操作数据库。
// app/service/user.js
class UserService extends Service {
async find(uid) {
// 假如 我们拿到用户 id 从数据库获取用户详细信息
const user = await this.app.mysql.query("select * from users where id='11");
return { user };
}
}
这两个例子的结果是等价的。 如果要查找更多的sql api,可以到该网址上查找。