CRUD终极版 装饰器实现模型定义 Sequelize-typescript是基于Sequelize针对TypeScript所实现的一个增强版本,抛弃了之前繁琐的模型定义,使用装饰器直接达到我们想到的目的 Sequelize-typescript的使用方式 首先因为是用到了TS,所以环境依赖上要安装的东西会多一些: # 这里采用ts-node来完成举例 npm i ts-node typescript npm i sequelize reflect-metadata sequelize-typescript 其次,还需要修改TS项目对应的tsconfig.json文件,用来让TS支持装饰器的使用: { 但是在Sequelize-typescript就可以直接使用继承来实现我们想要的效果: // 首先还是我们的Animal模型定义 // /models/animal.ts import { Table, Column, Model } from 'sequelize-typescript' @Table({ tableName: 'animal' }) export default class
; Ps:这个文件是不同步到 github 的,需要各位读者结合实际情况配置 市面上有很多连接数据库的工具,笔者这里使用的是 Sequelize,先安装依赖包: $ npm i sequelize sequelize-typescript mysql2 -S 或 $ yarn add sequelize sequelize-typescript mysql2 -S 然后在 src 目录下创建文件夹 database,然后再创建 sequelize.ts : // src/database/sequelize.ts import { Sequelize } from 'sequelize-typescript'; import db from '../.
ORM的使用 以Sequelize为例 仅示例,更多操作可参考 Sequelize 中文文档 https://www.sequelize.com.cn/ RobinBuschmann/sequelize-typescript https://github.com/RobinBuschmann/sequelize-typescript Sequelize 是一个基于 Promise 的 Node.js ORM, 目前支持 Postgres
reflect-metadata: 大量装饰器的包都会依赖的一个基础包,用于注入数据 routing-controllers: 使用装饰器的方式来进行koa-router的开发 sequelize: 抽象化的数据库操作 sequelize-typescript import { Model, Table, Column } from 'sequelize-typescript' @Table({ tableName: 'user_info_test' }
迁移后项目基于 Midway,MySQL,sequelize-typescript,axios。 Params> // 提取函数返回类型 Params type a13 = InstanceType<typeof Shape> // 提取实例类型 Shape 实际应用 以一个简化的模块为例,首先使用 sequelize-typescript import { DataType, Model,Column,Comment,AutoIncrement,PrimaryKey } from 'sequelize-typescript'; const
而在 Typescript 面前,工具库层面目前两种可选项,可以使用 sequelize-typescript 或者 TypeORM 来进行数据库的管理。 支持装饰器写法,用法上简单直观;且足够强的扩展能力,能支持复杂的数据操作; 该库足够受欢迎,Github Star 数量高达 20.3k(截止此文撰写 2020.08 时),且官方文档友好 并非说 Sequelize-typescript
/config/db'; import { type Dialect } from 'sequelize'; import { Sequelize } from 'sequelize-typescript Userinfo.createModel(); ③ 用户模块 Dao 层 // src\modules\userinfo\dao\index.ts import { Sequelize } from 'sequelize-typescript