使用契机
前段时间打算做一个系统,涉及前后端
前端分为用户端和后台管理,后台发布任务,用户端签到、签退
选后端框架时挑挑拣拣,最后感觉 Nest JS
的装饰器写法令我非常满意,于是就决定下来了
学到的东西
Typeorm
使用 typeorm
维护数据库字段
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
@PrimaryGeneratedColumn({ type: 'int', comment: '用户ID' }) id: number
@Column({ type: 'varchar', length: 20, comment: '用户名' }) username: string
@Column({ type: 'varchar', length: 50, comment: '密码' }) password: string
|
自动维护时间
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
@CreateDateColumn({ type: 'datetime', comment: '创建时间' }) created_at: Date
@UpdateDateColumn({ type: 'datetime', comment: '最后更新时间' }) updated_at: Date
@DeleteDateColumn({ type: 'datetime', comment: '删除时间' }) deleted_at: Date
|
删除时间可以用于软删除
数据关系,比如一个用户有多辆车
1 2 3 4 5 6 7 8
| @OneToMany(() => Car, (car) => car.user) car_list: Car[]
@ManyToOne(() => User, (user) => user.car_list) @JoinColumn() user: number
|
JWT 认证
因为官网文档太详细了,就简单说一下
分为 local
策略和 JWT
策略
local
策略用于登录接口,验证用户名密码是否正确,登录成功后把 Token
返回,前端保存在本地
JWT
就是其他接口的验证了,请求接口时携带保存的 Token
,后端能从 Token
中取到保存的户信息