返回

egg.js + TypeScript + MySQL 开发踩坑指南

前端

使用 Egg.js、TypeScript 和 MySQL 构建全栈应用程序:终极指南

一、项目准备:安装依赖

踏入 Egg.js、TypeScript 和 MySQL 开发之旅之前,让我们装备我们的工具箱:

  • Egg.js: npm install egg --save
  • TypeScript: npm install typescript --save-dev
  • MySQL: brew install mysql@5.7
  • Egg-MySQL: npm install egg-mysql --save

二、配置工程:配置文件

接下来,我们为我们的应用程序配置舞台:

  • config/config.default.ts: 定义 MySQL 数据库连接细节。
  • config/plugin.ts: 启用 egg-mysql 插件。

三、数据库连接:建立桥梁

连接到我们的数据库就像架起沟通的桥梁:

  • app/model/index.ts: 创建 Sequelize 实例并连接到数据库。
  • app/model/user.ts: 定义 User 模型并与数据库表进行映射。

四、常见问题排查:解决难题

在开发过程中,问题就像路上的障碍,让我们逐个击破:

  • 数据库连接失败: 检查配置、服务和防火墙设置。
  • 模型同步失败: 审查模型定义、表存在性和同步状态。
  • 查询数据失败: 验证查询语句、表存在性和条件正确性。
  • 更新数据失败: 检查更新语句、表存在性和数据存在性。
  • 删除数据失败: 验证删除语句、表存在性和数据存在性。

五、代码示例:点亮夜空

// config/config.default.ts
export default {
  mysql: {
    client: {
      host: '127.0.0.1',
      port: 3306,
      user: 'root',
      password: 'password',
      database: 'egg_typescript_mysql',
    },
  },
};

// config/plugin.ts
exports.mysql = {
  enable: true,
  package: 'egg-mysql',
};

// app/model/index.ts
import { Sequelize } from 'sequelize';

export const sequelize = new Sequelize('egg_typescript_mysql', 'root', 'password', {
  host: '127.0.0.1',
  port: 3306,
  dialect: 'mysql',
  logging: false,
});

// app/model/user.ts
import { Sequelize, Model, DataTypes } from 'sequelize';

export class User extends Model {
  public id!: number;
  public username!: string;
  public password!: string;
}

User.init({
  id: {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true,
  },
  username: {
    type: DataTypes.STRING(255),
    allowNull: false,
  },
  password: {
    type: DataTypes.STRING(255),
    allowNull: false,
  },
}, {
  sequelize,
  tableName: 'users',
});

六、常见问题解答:扫清疑虑

  • Q:数据库连接失败,怎么办?
    • A:检查配置、服务和防火墙设置。
  • Q:模型同步失败,如何解决?
    • A:审查模型定义、表存在性和同步状态。
  • Q:查询数据失败,该如何定位?
    • A:验证查询语句、表存在性和条件正确性。
  • Q:更新数据失败,是什么原因?
    • A:检查更新语句、表存在性和数据存在性。
  • Q:删除数据失败,如何解决?
    • A:验证删除语句、表存在性和数据存在性。

七、结语:启航扬帆

使用 Egg.js、TypeScript 和 MySQL 构建全栈应用程序就像踏上一场技术之旅。通过遵循本指南,您可以自信地架起数据库桥梁,并解决沿途遇到的挑战。祝您开发愉快!