Egg-TS-Sequelize的使用

Egg 官方文档:https://www.eggjs.org/zh-CN/tutorials/sequelize

安装依赖

npm install --save egg-sequelize mysql2
  • config/plugin.js 中引入 egg-sequelize 插件
// 开启sequelize
sequelize: {
    enable: true,
    package: 'egg-sequelize',
}

image-20220307222657839

  • config/config.default.js 中编写 sequelize 配置, 可以在不同的环境配置中配置不同的数据源地址,用于区分不同环境使用的数据库,也可以写在 local 文件当中
config.sequelize = {
    dialect: 'mysql',
    host: '121.5.151.166',
    username: 'root',
    password: 'yangbuyi123..',
    port: 3306,
    database: 'it6666',
};

image-20220307222911896

如上的配置完毕之后呢,然后就去新建所对应的数据库,创建一个测试表,建表语句如下:

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
  `name` varchar(30) DEFAULT NULL COMMENT 'user name',
  `age` int(11) DEFAULT NULL COMMENT 'user age',
  `created_at` datetime DEFAULT NULL COMMENT 'created time',
  `updated_at` datetime DEFAULT NULL COMMENT 'updated time',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='user';

编写代码

现在终于可以开始编写代码实现业务逻辑了,首先我们来在 app/model/ 目录下编写 user 这个 Model,如果没有 model 文件夹自行创建:

user.ts:

'use strict';

module.exports = (app) => {
    const {STRING, INTEGER, DATE} = app.Sequelize;

    return app.model.define('user', {
        id: {type: INTEGER, primaryKey: true, autoIncrement: true},
        name: STRING(30),
        age: INTEGER,
        created_at: DATE,
        updated_at: DATE,
    });
};

编写 controller, home.ts:

import {Controller} from 'egg';

export default class HomeController extends Controller {
    public async index() {
        const {ctx} = this;
        ctx.body = await ctx.model.User.findAll();
    }
}

在数据库当中自己添加点测试数据,然后访问浏览器:http://127.0.0.1:7001/

image-20220307225142804

posted @   BNTang  阅读(200)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示