Egg 官方文档:https://www.eggjs.org/zh-CN/tutorials/sequelize
安装依赖
npm install --save egg-sequelize mysql2
- 在
config/plugin.js
中引入egg-sequelize
插件
// 开启sequelize
sequelize: {
enable: true,
package: 'egg-sequelize',
}
- 在
config/config.default.js
中编写sequelize
配置, 可以在不同的环境配置中配置不同的数据源地址,用于区分不同环境使用的数据库,也可以写在 local 文件当中
config.sequelize = {
dialect: 'mysql',
host: '121.5.151.166',
username: 'root',
password: 'yangbuyi123..',
port: 3306,
database: 'it6666',
};
如上的配置完毕之后呢,然后就去新建所对应的数据库,创建一个测试表,建表语句如下:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
`name` varchar(30) DEFAULT NULL COMMENT 'user name',
`age` int(11) DEFAULT NULL COMMENT 'user age',
`created_at` datetime DEFAULT NULL COMMENT 'created time',
`updated_at` datetime DEFAULT NULL COMMENT 'updated time',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='user';
编写代码
现在终于可以开始编写代码实现业务逻辑了,首先我们来在 app/model/ 目录下编写 user 这个 Model,如果没有 model 文件夹自行创建:
user.ts:
'use strict';
module.exports = (app) => {
const {STRING, INTEGER, DATE} = app.Sequelize;
return app.model.define('user', {
id: {type: INTEGER, primaryKey: true, autoIncrement: true},
name: STRING(30),
age: INTEGER,
created_at: DATE,
updated_at: DATE,
});
};
编写 controller, home.ts:
import {Controller} from 'egg';
export default class HomeController extends Controller {
public async index() {
const {ctx} = this;
ctx.body = await ctx.model.User.findAll();
}
}
在数据库当中自己添加点测试数据,然后访问浏览器:http://127.0.0.1:7001/