当前位置: 首页 > 知识库问答 >
问题:

当出现错误时,如何使用Sequelize ORM作为“用户”角色的显示索引`

吉嘉珍
2023-03-14

这是我的server.js,当我运行node server.js时,我在执行时出错(默认):显示来自user\u角色的索引

这里可以看到更多的代码

https://github.com/bezkoder/node-js-jwt-auth

const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");

const app = express();

var corsOptions = {
  origin: "http://localhost:8081"
};

app.use(cors(corsOptions));

// parse requests of content-type - application/json
app.use(bodyParser.json());

// parse requests of content-type - application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }));

// database
const db = require("./app/models");
const Role = db.role;

db.sequelize.sync();
// force: true will drop the table if it already exists
// db.sequelize.sync({force: true}).then(() => {
//   console.log('Drop and Resync Database with { force: true }');
//   initial();
// });

// simple route
app.get("/", (req, res) => {
  res.json({ message: "Welcome to bezkoder application." });
});

// routes
require('./app/routes/auth.routes')(app);
require('./app/routes/user.routes')(app);

// set port, listen for requests
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}.`);
});

function initial() {
  Role.create({
    id: 1,
    name: "user"
  });
 
  Role.create({
    id: 2,
    name: "moderator"
  });
 
  Role.create({
    id: 3,
    name: "admin"
  });
}

我使用的Sequelize是一个基于promise的Node.jsORM,适用于Postgres、MySQL、MariaDB、SQLite和微软SQL服务器。它具有坚实的事务支持、关系、渴望和懒惰加载、读取复制等功能。

node --version
v15.5.0



const db = {};

db.Sequelize = Sequelize;
db.sequelize = sequelize;

db.user = require("../models/user.model.js")(sequelize, Sequelize);
db.role = require("../models/role.model.js")(sequelize, Sequelize);

db.role.belongsToMany(db.user, {
  through: "user_roles",
  foreignKey: "roleId",
  otherKey: "userId"
});
db.user.belongsToMany(db.role, {
  through: "user_roles",
  foreignKey: "userId",
  otherKey: "roleId"
});

db.ROLES = ["user", "admin", "moderator"];

module.exports = db;

这是我在终端得到的输出

节点:6384)[SEQUELIZE0004]DeprecationWarning:一个布尔值被传递到options.operators别名。这是v5的无操作,应该删除。
服务器运行在端口8080上。
执行(默认):如果不存在,则创建表用户
(idINTEGER not NULLauto_increment,用户名VARCHAR(255),电子邮件VARCHAR(255),密码VARCHAR(255),createdat数据不为空,updatedat数据不为空,主要关键(id))ENGINE=InnoDB;<执行(默认):显示索引从用户
执行(默认):创建表如果不存在角色idINTEGER,nameVARCHAR(255),createdAtDATETIME not NULL,<代码>更新在DATETIME不为空,主键(id))ENGINE=InnoDB;
执行(默认):显示索引从角色
执行(默认):创建表如果不存在user_roles数据不为空,updatedat数据不为空,角色IDINTEGER,userIdINTEGER,主键(角色IDuserId),外键(角色ID)引用角色id)ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY(userId)REFERENCES用户id)ON DELETE CASCADE ON UPDATE CASCADE)ENGINE=InnoDB;
执行(默认):显示索引user_roles

然后就挂了

共有1个答案

别锐
2023-03-14

我相信这不是一个“悬而未决”的问题。这只是sequelize的最后一个输出,并且执行正确。这肯定是一个用户体验问题,因为它“看起来”冻结了。

尝试访问该应用程序,它就会正常工作。

 类似资料:
  • 用户已作为用户角色登录,我想以员工身份登录而不提交登录表单,但身份验证失败, 请查一下密码,帮帮我 @requestmapping(value=“/home”)public ModelAndView userHomePage(Model Model,HttpServletRequest request,HttpServletResponse response,Principal Principal

  • 我无法在我的索引页面上显示经过身份验证的用户的角色和用户名。我用的是百里叶。所有角色用户都保存在内存中。我正在使用Springmvc编写和Web应用程序 我在我的pom中添加了依赖关系.xml 这是我的索引页: 我也希望: 这是我的安全配置类: 我也读了很多关于stackoverlew的问题,但我没有找到答案。我还阅读了官方蒂梅拉夫网站上的指南。 为什么我无法显示:“角色:用户”、“用户名:用户”

  • Stackblitz示例链接 我正在使用角材料-垫-自动完成内部形式。我想显示红色高亮文本和边框颜色的输入字段&mat-matautoComplete输入错误消息时,表单无效。建议反应或模板驱动的形式将起作用

  • 目前,我正在用Java开发一个基于Spring Boot的web应用程序。我正在尝试为我的应用程序创建工人注册。老实说,这是我第一次使用这样的应用程序,我真的不知道如何在注册时授予用户角色。我看了几个教程,但并没有人演示如何在向数据库添加新用户时授予角色。 在我的数据库中,我有如下表Worker和Role。 在注册表中,我有两个复选框:worker和admin,我想根据所选的复选框授予权限。 这就

  • 如果我使用以下形状可绘制 然后不知何故圆角结束了颜色(黑灰色)。除了拐角处,形状的内部是透明的。当我将纯色设置为白色或黑色时,边框内的所有东西都是预期的颜色。 我的问题是,为什么当纯色是透明的(甚至没有设置)时,圆角似乎会显示颜色? 谢啦

  • 我试图从Selenium驱动ChromeDriver启动的google-chrome浏览上下文中检索的值。 使用google-chrome-devtools,我可以检索和,如下所示: 但是使用Selenium的方法,我可以提取,但是会引发以下循环引用错误: > 代码块: 控制台输出: 我已经通过了以下关于循环引用的讨论,我理解了这个概念。但我不知道我应该如何在这里解决这个问题。 null