我有一个错误:
错误:包子路径'./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;
只需直接从
sequelize
导入所有这些类型:
import { DataTypes, Model, Optional } from "sequelize";