本文已参与「新人创作礼」活动,一起开启掘金创作之路。
koa2+sequelize+mysql2搭建后台
本文章是根据以下链接进行二次开发,案例有所改变,将最主要的提取了出来,若需更详细的可看以下链接的文章
ko2正常启动项目后即可开始以下
先安装sequelize+mysql2
npm install sequelize --save
npm install mysql mysql2 --save
搭建流程
1.配置Sequelize的数据库链接
创建config目录,目录中创建db.js,连接数据库
//db.js
const Sequelize = require('sequelize');
const sequelize = new Sequelize('dbname','dbusername','password',{
host:'localhost',
dialect:'mysql',
operatorsAliases:false,
dialectOptions:{
//字符集
charset:'utf8mb4',
collate:'utf8mb4_unicode_ci',
supportBigNumbers: true,
bigNumberStrings: true
},
pool:{
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
timezone: '+08:00' //东八时区
});
module.exports = {
sequelize
};
})
代码可以直接使用,只需要将代码中实例化Sequelie对象语句中的dbname更改为你的数据库名,dbusername更改为你的数据库用户名,passoword更改为你的数据库密码,其中数据库名和数据库用户名不能为空,密码可以为空,为空时则为空的字符串就可以了。
2.创建schema、modules、controllers schema:数据表模型实例 modules:实体模型 controllers:控制器
3个目录下分别创建users.js
3.schema数据表模型
在schema目录下新建一个article.js文件,该文件的主要作用就是建立与数据表的对应关系,也可以理解为代码的建表。
表结构:
| 字段 | 说明 | 是否必填 |
|---|---|---|
| id | 用户自增ID,主键 | 否,自动填 |
| loginName | 登录名 | 是 |
| pwd | 密码 | 是 |
| 邮箱 | 是 | |
| avatarUrl | 用户头像地址 | 否 |
| headline | 用户简介 | 否 |
这里有两个非必填的值,是一个伏笔,为了实现还花了点时间
在schema目录下的users.js用来创建数据表模型的,也可以理解为创建一张数据表,代码如下:
const moment = require("moment");
module.exports = function (sequelize, DataTypes) {
return sequelize.define('users', {
id: {
type: DataTypes.INTEGER.UNSIGNED,
primaryKey: true,
allowNull: true,
autoIncrement: true
},
//登录名
loginName: {
type: DataTypes.CHAR,
allowNull: false,
field: 'loginName'
},
//密码
pwd: {
type: DataTypes.CHAR,
allowNull: false,
field: 'pwd'
},
//邮箱
email: {
type: DataTypes.CHAR,
allowNull: false,
field: 'email'
},
//用户头像地址
avatarUrl: {
type: DataTypes.TEXT,
allowNull: true,
field: 'avatarUrl'
},
//用户简介
headline: {
type: DataTypes.CHAR,
allowNull: true,
field: 'headline'
},
// 创建时间
createdAt: {
type: DataTypes.DATE
},
// 更新时间
updatedAt: {
type: DataTypes.DATE
}
}, {
/**
* 如果为true,则表示名称和model相同,即user
* 如果为fasle,mysql创建的表名称会是复数,即users
* 如果指定的表名称本身就是复数,则形式不变
*/
freezeTableName: true
});
}