全栈之路-koa + sequelize=>ORM

koa链接mysql数据库

选型

1
$ yarn add sequelize mysql2

sequelize是一个ORM(Object-Relational Mapping)库,其依赖mysql2,所以需要安装mysql2

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.
├── controllers
│ ├── index.js
│ ├── login.js
│ ├── register.js
│ └── test.js
├── middlewares
│ └── response.js
├── public
│ └── imgs
│ ├── upload_00f9bdb7aa75dfd455794547b138aebc.png
│ └── upload_ec0497887318dc78a69503de737570da.png
├── routes
│ └── index.js
├── service
├── tablemodules----------------------------------sequelize维护的modules,是与表对应的。
│ ├── index.js
│ ├── user_info.js
│ └── users.js
├── app.js
├── config.js
├── sequelize.js
├── ws.js
├── nodemon.json
├── package.json
└── yarn.lock

config.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
module.exports = {
port: '5757',
rootPathname: '',

/**
* MySQL 配置,用来存储 session 和用户信息
* 若使用了腾讯云微信小游戏解决方案
* 开发环境下,MySQL 的初始密码为您的微信小游戏 appid
*/
mysql: {
host: '140.143.230.121',
port: 3306, //mysql默认端口
database: 'test',
username: 'root',
password: 'zhangjun..'
}
}

suquelize链接数据库

借鉴廖雪峰系列sequelize中文文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//初始化链接数据库,并创建ORM(Object-Relational Mapping)实例
const Sequelize = require('sequelize');
const config = require('./config').mysql;

let sequelize = new Sequelize(config.database, config.username, config.password, {
host: config.host,
dialect: 'mysql',
pool: {
max: 5,
min: 0,
idle: 30000
}
})

module.exports = sequelize;

表模型

1
2
3
4
5
6
7
8
9
10
11
12
13
const Sequelize = require('sequelize')
const sequelize = require('../sequelize');
module.exports = sequelize.define('users',{
id : {
type: Sequelize.STRING(50),
primaryKey: true //如果是主键,需要此项描述。
},
'user_id' : Sequelize.STRING,
'user_name' : Sequelize.STRING,
'sex' : Sequelize.STRING
},{
timestamps: false //{ timestamps: false }是为了关闭Sequelize的自动添加timestamp的功能。
})

未完待续…

原文=> http://blog.thephenix.com/2018/07/31/FSRconnectDB/ 【请尊重版权】