带有 Sequelize 和 Typescript 的 NodeJS

NodeJS with Sequelize and Typescript

我希望能够从我的代码创建模型到 mysql 数据库。 问题是没有创建 tables.. 我没有任何好的文档来使用 sequelize with typescript..

index.ts

import express from 'express';
import cors from "cors";
import helmet from "helmet";
import * as dotenv from "dotenv";
import { sequelize } from "./config/sequelize";
import routes from "./routes";

dotenv.config();

    // Create a new express application instance
    const app = express();
    app.use(cors());
    app.use(helmet());
    app.use(express.json());

    sequelize
        .sync({ force: true })
        .then(() => {
            console.log("Connection has been established successfully.");
            app.use("/api", routes);
            app.listen(3000, () => {
                console.log('Listening...') // OK
            });
        })
        .catch(err => {
            console.error("Unable to connect to the database:", err);
        });

sequelize.ts

import { Sequelize } from 'sequelize-typescript';

export const sequelize = new Sequelize({
  database: 'node',
  dialect: 'mysql',
  username: 'root',
  password: '',
  host: 'localhost',
  models: ['../entities']
})

entities/users.ts

import { Table, Column, Model } from 'sequelize-typescript';

@Table
class Users extends Model {
  @Column
    name!: string;

  @Column
    age!: number;

  @Column
    breed!: string;
}

所以我的用户 table 没有被创建。我不明白为什么,与数据库的连接没问题。 感谢您的帮助!

Sequelize 不会为您创建 table。该模型“仅”是对用户实体执行 CRUD 操作的工具。

您需要手动创建 table 结构,或者最好使用 mysql-migrations.

等迁移工具