Skip to content

Commit 6849e0b

Browse files
author
142vip.cn
committed
feat(ORM): 新增Sequelize教程文档、代码
1 parent e6a7995 commit 6849e0b

30 files changed

+1704
-1439
lines changed

code/koa/koa-run-sort.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ app.use(async(ctx, next) => {
99
const middleRes1 = await next()
1010
console.log('middleware1===>', middleRes1)
1111
const rt = ctx.response.get('X-Response-Time')
12-
console.log(`请求信息:${ctx.method}-${ctx.url} - ${rt}`)
12+
const { method, url } = ctx
13+
console.log(`请求信息:${method}-${url} - ${rt}`)
1314
return 'back middleware1 result'
1415
})
1516

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
const { Sequelize, Model, DataTypes, Op } = require('sequelize')
2+
const sequelize = new Sequelize('postgres://user:pass@142vip.cn:5432/142vip')
3+
4+
/**
5+
* 定义用户表模型
6+
*/
7+
const User = sequelize.define('user', {
8+
name: DataTypes.TEXT,
9+
favoriteColor: {
10+
type: DataTypes.TEXT,
11+
// 默认值
12+
defaultValue: 'green'
13+
},
14+
age: DataTypes.INTEGER
15+
})
16+
17+
const users = User.findAll()
18+
19+
const user2 = User.findAll({
20+
attributes: ['name']
21+
})
22+
23+
const user3 = User.findAll({
24+
attributes: [
25+
'name',
26+
[sequelize.fn('count', sequelize.col('age')), 'countAge']
27+
]
28+
})
29+
30+
const user4 = User.findAll({
31+
attributes: {
32+
include: ['name']
33+
}
34+
})
35+
36+
const user5 = User.findAll({
37+
attributes: {
38+
include: [sequelize.fn('count', sequelize.col('age')), 'countAge']
39+
}
40+
})
41+
42+
// 排除name数据列
43+
const user6 = User.findAll({
44+
attributes: {
45+
exclude: ['name']
46+
}
47+
})
48+
49+
const user7 = User.findAll({
50+
where: {
51+
name: '142vip.cn'
52+
}
53+
})
54+
55+
56+
const user8 = User.findAll({
57+
where: {
58+
name: {
59+
[Op.eq]: '142vip.cn'
60+
}
61+
}
62+
})
63+
64+
const user9 = User.findOrCreate({
65+
where: {
66+
name: '142vip.cn'
67+
}
68+
})
69+
70+
71+
const user10 = User.findAndCountAll({})

code/orm/sequelize/db-curd-demo/app.js

Whitespace-only changes.

code/orm/sequelize/db-curd-demo/db-create.js

Whitespace-only changes.

code/orm/sequelize/db-curd-demo/db-update.js

Whitespace-only changes.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const { Sequelize, DataTypes } = require('sequelize')
2+
const { UserModel } = require('./user')
3+
const sequelize = new Sequelize('sqlite::memory:')
4+
5+
const User = sequelize.define('User', UserModel)
6+
7+
// `sequelize.define` 会返回模型
8+
console.log(User === sequelize.models.User) // true
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
const { Sequelize, DataTypes, Model } = require('sequelize')
2+
const { UserModel } = require('./user')
3+
const sequelize = new Sequelize('sqlite::memory')
4+
5+
6+
/**
7+
* 继承Model类型,使用使用init方法注册模型
8+
*/
9+
class User extends Model {
10+
11+
}
12+
13+
/**
14+
* 初始化模型
15+
*/
16+
User.init(UserModel, {
17+
// 连接实例
18+
sequelize,
19+
// 指定模型绑在sequelize对象上的名称
20+
modelName: 'User'
21+
})
22+
23+
// 定义的模型就是User类本身
24+
console.log(User === sequelize.models.User) // true
25+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
const { DataTypes } = require('sequelize')
2+
3+
export const UserModel = {
4+
/**
5+
* 名称
6+
*/
7+
name: DataTypes.STRING,
8+
9+
/**
10+
* 年龄
11+
*/
12+
age: DataTypes.INTEGER,
13+
/**
14+
* 性别
15+
*/
16+
gender: {
17+
type: DataTypes.BOOLEAN,
18+
// 默认值
19+
defaultValue: 1
20+
},
21+
/**
22+
* 出生日期
23+
*/
24+
birth: {
25+
type: DataTypes.DATE
26+
}
27+
}

code/orm/sequelize/db-curd-demo/package-lock.json

Lines changed: 237 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "db-curd-demo",
3+
"version": "0.0.1",
4+
"description": "SequelizeORM框架的一些增删改查操作",
5+
"dependencies": {
6+
"sequelize": "^6.35.1"
7+
},
8+
"scripts": {
9+
"dev": "node app.js"
10+
},
11+
"author": {
12+
"name": "微信公众号:储凡",
13+
"email": "fairy_vip@2925.com"
14+
},
15+
"license": "MIT"
16+
}

0 commit comments

Comments
 (0)