@Table
@Table({
timestamps: true,
})
- sequelize 的方式,GitHub 文档地址:https://github.com/demopark/sequelize-docs-Zh-CN/blob/v5/models-definition.md
let User = sequelize.define('user', {
}, {
// 原生sequelize定义表方法的这里就是sequelize-typescript中的@Table
});
@Column
@Column({
type: DataType.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
unique: true,
comment: '这是表的主键',
})
id: number;
- sequelize 的方式,GitHub 文档地址:https://github.com/demopark/sequelize-docs-Zh-CN/blob/v5/models-definition.md
let User = sequelize.define('user', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
}
}, {});
列类型快捷装饰器
- @AllowNull(allowNull?: boolean):设置 attribute.allowNull(默认为 true)
- @AutoIncrement:设置 attribute.autoIncrement=true
- @Unique:设置 attribute.unique=true
- @Default(value: any):设置 attribute.defaultValue 为指定值
- @PrimaryKey:设置 attribute.primaryKey=true
- @Comment(value: string):设置 attribute.comment 为指定的字符串
@Column({
type: DataType.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
unique: true,
comment: '这是表的主键',
})
id: number;
- 注意点: 结合使用时把
@Column
放到最下面
@PrimaryKey
@AutoIncrement
@AllowNull(false)
@Unique
@Comment( '这是表的主键')
@Column({type: DataType.INTEGER});
id: number;
自动类型推断
可以从 JavaScript 类型自动推断出以下类型。其他必须明确定义。
JS 类型 | 推断类型 |
string | STRING |
boolean | BOOLEAN |
number | INTEGER |
Date | DATE |
Buffer | BLOB |
题外话
- 大部分用法和
sequelize
都一样, 企业开发中只需对照文档阅读使用即可 - 除此之外因为
sequelize
不是使用ts
编写的, 所以在整合的时候需要做大量的配置和修改 - 对于小白而言可能有些难度, 如果你想再简单一点, 那么你还可以在
TS
项目中使用typeorm
来操作数据 -
typeorm
和sequelize
都是数据库ORM
框架, 但是typeorm
是使用TS
编写的, 所以在集成的时候相对简单 - 但是由于
typeorm
比较新, 所以还有很多不足, 以及遇到问题的时候相关资料也并不是很多 - 所以有空的时候建议可以尝试, 但如果个人能力还不够, 那么当前还不建议集成到企业级项目中进行生产使用
typeorm npm 官方地址:https://www.npmjs.com/package/typeorm