为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Sequelize 中使用类模型在数据库中创建表

无法在 Sequelize 中使用类模型在数据库中创建表

隔江千里 2023-03-24 14:35:19
我将 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.");


查看完整回答
反对 回复 2023-03-24
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

  • User.sync()- 如果表不存在则创建表(如果已存在则什么都不做)

  • User.sync({ force: true })- 创建表,如果它已经存在则先删除它

  • User.sync({ alter: true })- 检查数据库中表的当前状态(它有哪些列,它们的数据类型是什么等),然后在表中执行必要的更改以使其与模型匹配。

(async () => {
    await sequelize.sync({ alter: true });})();


查看完整回答
反对 回复 2023-03-24
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

我设法通过将模型导入我的 server.js: const models = require("./src/models/index");并使用 sync() 方法来创建表。



查看完整回答
反对 回复 2023-03-24
  • 3 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信