node.js - 如何解决sequelize ./types pakage的问题。错误: Package subpath './types' is not defined by "exports" sequalize

标签 node.js express sequelize.js

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

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

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

server.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")
});

User.model.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;

我的 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;

最佳答案

只需直接从 sequelize 导入所有这些类型:

import { DataTypes, Model, Optional } from "sequelize";

关于node.js - 如何解决sequelize ./types pakage的问题。错误: Package subpath './types' is not defined by "exports" sequalize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73181297/

相关文章:

node.js - Azure AD - 仅应用程序 token 中缺少角色声明

javascript - 为什么 db.findAll() 不是函数?

javascript - 使用 Sequelize 和 SQLITE 进行聚合查询

javascript - V8不会优化超过4种对象类型?

带有 ES6 模块、Typescript 和 Winston 的 node.js : "error TS2307: Cannot find module ' winston'"

node.js - Mongoose 创建多个索引并个性化 quety 以使用特定索引进行调用

sequelize.js - 如何在 Sequelize 中将关联设置为可空

mysql - Sequelize 'hasMany' 关联(模型)在查询执行中的属性计数

javascript - 我在哪里可以学习高级网络编程,特别是游戏开发方面的知识?

node.js - 通过 node.js 和 socket.io 将 PDF.js View 流式传输给多人?