如何解决sequelize ./types pakage的问题。错误:包子路径“./types”未由“exports”sequalize 定义

rus*_*nly 2 node.js express sequelize.js

我有一个错误:

错误:包子路径'./types'不是由与sequ​​elize包连接的“exports”定义的。
(错误:包子路径“./types”不是由 D:\Projects\pets\realtime-chat\backend\node_modules\sequelize\package.json 中的“exports”定义的)。

尝试通过将所有npm和node版本更新到最新来解决该问题,但不成功。我已经为我的应用程序设置了Express服务器,并使用打字稿创建了带有 Sequelize 的模型。socket.ioUser

当我尝试创建一个新的Userwith时User.create({\attributes\}),它会抛出上面提到的错误。

服务器.ts

import express from "express"
import { createServer } from "http"

import { Server } from "socket.io";

import apiRouter from "./routes/api.route";

import { seq } from "./models/db"

const app = express();

app.use("/api", apiRouter);
const httpServer = createServer(app);
const io = new Server(httpServer);

io.on("connection", (socket) => {
  console.log(socket.id);
});

httpServer.listen(process.env.PORT || 5000, () => {
  console.log(seq.config);
  seq.authenticate();
  
  console.log("Server is started")
});
Run Code Online (Sandbox Code Playgroud)

用户模型.ts

import { DataTypes, Model, Optional } from "sequelize/types";
import { seq } from "./db";

interface UserAttributes { 
  username: string,
  password: string,
  email: string
}

type UserCreationAttributes = Optional<UserAttributes, "email">;

class User extends Model<UserAttributes, UserCreationAttributes> {
  declare username: string;
  declare password: string;
  declare email: string
}

User.init({
  username: {
    type: DataTypes.STRING,
  },
  password: {
    type: DataTypes.STRING
  },
  email: {
    type: DataTypes.STRING
  }
},
{
  sequelize: seq,
  tableName: "users"
});

export default User;
Run Code Online (Sandbox Code Playgroud)

我的 api.route.ts

import express from "express"

import User from "../models/User";

const router = express.Router();

router.get("/users", async () => {
  await User.create({
    password: "name",
    username: "name"
  })
});

export default router;
Run Code Online (Sandbox Code Playgroud)

Ana*_*oly 5

只需直接从以下位置导入所有这些类型sequelize

import { DataTypes, Model, Optional } from "sequelize";
Run Code Online (Sandbox Code Playgroud)