Egg-TS-Sequelize-TypeScript版本的使用

在之前的文章介绍当中博主是在 Egg-Ts 的项目当中使用的就是 JS 来操作 Sequelize 的来进行使用的,但是博主目前要介绍的这个项目是 TS 项目,如果在使用 JS 的方式来进行使用的话会显得不够专业,那么这个时候我们就可以使用 TS 版本的 sequelize 来进行使用,博主找了几个网站也就是几个插件几个库就能完成转换到 TS 的版本,第一个就是 ts 版本的 sequelize,npm 地址:https://www.npmjs.com/package/sequelize-typescript

image-20220308094919703

第二个库就是在 GitHub 当中的一个 egg-sequelize-ts 官方地址:https://github.com/stone-lyl/egg-sequelize-ts 介绍完毕了之后接下来就可以上代码了。

安装依赖

npm install sequelize-typescript
npm i --save egg-sequelize-ts

配置

  • Enable plugin in config/plugin.js
  • config/plugin.js 文件中引入 egg-sequelize-ts 组件
// 开启sequelize-typescript
sequelize: {
    enable: true,
    package: 'egg-sequelize-ts',
}

例子

修改之前编写的 model 当中的 user.ts:

/**
 * @desc 用户表
 */
import {AutoIncrement, Column, DataType, Model, PrimaryKey, Table} from 'sequelize-typescript';

@Table({
    modelName: 'user'
})
class User extends Model<User> {
    @PrimaryKey
    @AutoIncrement
    @Column({
        type: DataType.INTEGER,
        comment: '用户ID',
    })
    id: number;

    @Column({
        comment: '用户姓名',
    })
    name: string;

    @Column({
        type: DataType.INTEGER,
        comment: '年龄',
    })
    age: number;

    @Column({
        field: 'created_at'
    })
    createdAt: Date;

    @Column({
        field: 'updated_at'
    })
    updatedAt: Date;
}

export default () => User;

直接启动项目,然后访问即可:http://127.0.0.1:7006/

image-20220308111248882

注意点,如果你出现报错等等问题,你可以试着按照我如下的步骤进行解决:

  • 更改 Node 版本与博主的一致,12.13.0
  • 更改 package.json 的版本与博主的一致
"dependencies": {
  "egg": "^2.6.1",
  "egg-scripts": "^2.6.0",
  "egg-sequelize": "^5.2.2",
  "egg-sequelize-ts": "^0.2.3-0",
  "mysql2": "^2.1.0",
  "sequelize-typescript": "^1.1.0"
},
"devDependencies": {
  "@types/mocha": "^2.2.40",
  "@types/node": "^7.0.12",
  "@types/supertest": "^2.0.0",
  "autod": "^3.0.1",
  "autod-egg": "^1.1.0",
  "egg-ci": "^1.8.0",
  "egg-bin": "^4.11.0",
  "egg-mock": "^3.16.0",
  "tslib": "^1.9.0",
  "eslint": "^6.7.2",
  "eslint-config-egg": "^8.0.0",
  "typescript": "^3.0.0"
},
"engines": {
  "node": ">=8.9.0"
},
"ci": {
  "version": "8"
},
"repository": {
  "type": "git",
  "url": ""
},
"eslintIgnore": [
  "coverage"
],
"author": "",
"license": "MIT"
posted @   BNTang  阅读(608)  评论(4编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示