Koa使用Sequelize连接数据库
使用的基础目录结构:Koa入门(一)—— Koa项目基础框架搭建
基础表:
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`phone` varchar(20) NOT NULL COMMENT '手机号',
`password` varchar(64) NOT NULL COMMENT '密码',
`nick_name` varchar(50) NOT NULL DEFAULT '' COMMENT '昵称',
`sex` tinyint(4) NOT NULL DEFAULT '1' COMMENT '性别,1:男;2:女',
`created_at` datetime NOT NULL COMMENT '创建时间',
`updated_at` datetime DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
sequelize 可以根据模型自动生成数据库表字段信息,不过个人比较喜欢自己建表,不喜欢使用这个功能
数据库信息配置
// src/main/config/index.js
export default {
middlewares: [
'globalError'
],
db: {
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
host: process.env.DB_HOST,
database: process.env.DB_DATABASE,
dialect: process.env.DB_DIALECT,
define: {
// 数据库字段下划线命名,匹配模型驼峰式命名
underscored: true,
// 禁用修改表名
freezeTableName: true
},
timezone: '+08:00',
// 返回的时间格式配置
dialectOptions: {
dateStrings: true,
typeCast: true
}
}
};
process.env的所有配置都在 .env
文件里:
NODE_ENV=dev
PORT=4000
DB_USERNAME=koa_demo
DB_PASSWORD=koa_demo
DB_HOST=localhost
DB_DATABASE=koa-demo
DB_DIALECT=mysql
DB层
// src/main/db/index.js
import config from '@main/config';
import Sequelize from 'sequelize';
import requireDirectory from 'require-directory';
const sequelize = new Sequelize(config.db);
// 加载模型
requireDirectory(module, '../model', {
visit: (obj) => {
if (obj.modelName