我将 node.js 与 express 和 sequelize 一起使用,我的数据库是 mysql。我试图创建一个类模型,如文档中所写:https://sequelize.org/master/manual/model-basics.html。我能够连接到数据库,但无法弄清楚如何将模型与数据库同步以创建表。这是我的用户模型:const { DataTypes, Model } = require('sequelize');const connection = require("../server");export class User extends Model { }User.init({ id: { type: DataTypes.BIGINT, autoIncrement: true, primaryKey: true, unique: true, allowNull: false }, username: { type: DataTypes.STRING, allowNull: false, unique: true, }, password: { type: DataTypes.STRING, allowNull: false, }, userType: { type: DataTypes.STRING, allowNull: false, }}, { connection});这是我的 server.js:const express = require("express");const Sequelize = require("sequelize");const app = express();const port = 8080;const connection = new Sequelize("coupons2", "root", "1234", { host: "localhost", dialect: "mysql"})connection.sync() .then(() => { console.log("Connection to DB was successful"); }) .catch(err => { console.error("Unable to connect to DB", err); });app.listen(port, () => { console.log(`Server is running on port ${port}`);})module.exports = connection;谢谢你!
3 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
我想你忘了要求你Sequelize
上面提到的文件中显示的
`const {Sequelize, DataTypes, Model } = require('sequelize');
如果你希望它的表由你可以sequelize.sync
在你的项目中使用的模型自动创建
await sequelize.sync({ force: true }); console.log("All models were synchronized successfully.");
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
User.sync()
- 如果表不存在则创建表(如果已存在则什么都不做)User.sync({ force: true })
- 创建表,如果它已经存在则先删除它User.sync({ alter: true })
- 检查数据库中表的当前状态(它有哪些列,它们的数据类型是什么等),然后在表中执行必要的更改以使其与模型匹配。
(async () => { await sequelize.sync({ alter: true });})();
阿波罗的战车
TA贡献1862条经验 获得超6个赞
我设法通过将模型导入我的 server.js: const models = require("./src/models/index");
并使用 sync() 方法来创建表。
添加回答
举报
0/150
提交
取消