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

问题描述 投票:0回答:1

我有一个错误:

错误:包子路径'./types'不是由与sequelize包连接的“exports”定义的。
(错误:包子路径“./types”未由 D:\Projects\pets 中的“exports”定义 实时聊天确认 ode_modules\sequelize\package.json).

尝试通过将所有npm和node版本更新到最新来解决该问题,但没有成功。我已经为我的应用程序设置了带有

Express
socket.io
服务器,并使用打字稿创建了带有 Sequelize 的
User
模型。

当我尝试使用

User
创建新的
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")
});

用户.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;
node.js express sequelize.js
1个回答
5
投票

只需直接从

sequelize
导入所有这些类型:

import { DataTypes, Model, Optional } from "sequelize";
© www.soinside.com 2019 - 2024. All rights reserved.