【问题标题】:Sending default role in nodeJS application在 nodeJS 应用程序中发送默认角色
【发布时间】:2021-01-05 06:45:06
【问题描述】:

StackOverflow 社区!

我一直在从事一个涉及角色的项目。现在我通过邮递员设置了一名管理员和一名版主,并将其保存到我的数据库中。

现在当用户注册时,我想将“用户”的默认角色发送到我的数据库,管理员可以稍后更新(如果他愿意的话)。

我将发送角色类型的旧代码:

exports.signup = (req, res) => {
  // Save User to Database
  console.log("Processing func -> SignUp");
  
  User.create({
    name: req.body.name,
    username: req.body.username,
    email: req.body.email,
    password: bcrypt.hashSync(req.body.password, 8)
  }).then(user => {
    Role.findAll({
      where: {
      name: {
        [Op.or]: req.body.roles
      }
      }
    }).then(roles => {
      user.setRoles(roles).then(() => {
        res.send("User registered successfully!");
            });
    }).catch(err => {
      res.status(500).send("Error -> " + err);
    });
  }).catch(err => {
    res.status(500).send("Fail! Error -> " + err);
  })
}

邮递员请求看起来像:

{
    "name": "Examp",
    "username": "example",
    "email": "gmail@gmail.com",
    "roles": ["admin"],
    "password": "12345"
}

这很完美。我现在只想发送没有“角色”部分的邮递员请求。我知道这个技巧在Role.finndAll 部分的某个地方,但我无法弄清楚(我认为它就在那里,哈哈)。我尝试将[Op.or]: req.body.roles 替换为roles: ["user"],但没有成功。

非常感谢您的帮助! 谢谢!

【问题讨论】:

  • 你试过where: { name: "user" }吗?
  • @Anatoly 就像一个魅力!非常感谢!

标签: mysql node.js sequelize.js


【解决方案1】:

你可以试试这个:

where: { 
  name: "user"
}

如果你写在 SQL 查询中,它等于name="user"

【讨论】:

    【解决方案2】:

    解决方案由@Anatoly 提供 需要更正的是

    where: {       name: "user"       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-03
      • 2017-06-03
      • 2010-12-26
      • 1970-01-01
      • 2013-05-02
      • 2016-04-23
      • 1970-01-01
      • 2021-03-06
      相关资源
      最近更新 更多