gpt4 book ai didi

node.js - 使用 id 更新用户角色的 API - Node

转载 作者:行者123 更新时间:2023-12-03 22:30:58 25 4
gpt4 key购买 nike

我正在尝试创建一个 Node API 并使用 Postman 对其进行测试,但我一直遇到错误。我似乎无法更新我的用户表的 userRole。我已尝试使用 console.log(req.body.userRole) 打印传入字段我想更新用户角色,但是当我删除 try catch 时,它显示为未定义或抛出与我的 Cors 设置/unhandledPromiseRejection 错误相关的错误环形。
在下面的代码中,我收到一条消息,表明它已更新,但表的值没有任何变化。 userRole 是我表的第 7 列,拼写正确。有一个附加到 userRole 表的外键,我不确定它是导致错误的原因。
这可能是代码中的错误,因为我还没有很多更新功能正常工作。
enter image description here

exports.updateUser = async (req, res) => {

try{
const userID = req.params.userId;
//const role = req.body.userRole;
const user = await User.findByPk(userID);
//console.log("userRole", req.body.userRole)
if(!user){
// return a response to client
res.status(404).json({
message: "Not Found for updating a user with id = " + user,
user: "",
error: "404"
});
} else {
console.log("userRole", req.body.userRole)
// update new change to database
let updatedUser = {
userID: userID,
//userRole: role
}
let userRes = user.update(updatedUser, {
returning: true,
where: {userID: userID}
});
// return the response to client
if(!userRes) {
res.status(500).json({
message: "Error -> Can not update a user with username = " + req.params.userId,
error: "Can't Update",
});
}
res.status(200).json({
message: "Updated role successfully user = " + req.params.userId,
user: updatedUser,
});
}
} catch(error){
res.status(500).json({
message: "Error -> Can not update a customer with userName = " + req.params.userId,
error: error.message
});
}
}
模型
module.exports = (sequelize, Sequelize) => {

const userLogin = sequelize.define("userLogins", {

userID: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
username: {
type: Sequelize.TEXT
},
password: {
type: Sequelize.TEXT
},
userEmail: {
type: Sequelize.TEXT
},
userFirstName: {
type: Sequelize.TEXT
},
userSurname: {
type: Sequelize.TEXT
},
userRole: {
type: Sequelize.INTEGER
},
photos: {
type: Sequelize.TEXT,
}},
{
timestamps: false
})
userLogin.associate = function(models){
userLogin.userRole.hasOne(models.userRole, {foreignKey: 'userRoleID', as: 'userRoleID'})
};
return userLogin;
};
榜样
module.exports = (sequelize, Sequelize) => {

const userRole = sequelize.define("userRoles", {

userRoleID: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
},
userRoleName: {
type: Sequelize.TEXT
}},
{
timestamps: false
},{});
return userRole;
};

最佳答案

例子:

  • 模型:用户
    领域:
  • Id ( PrimaryKey )
  • RoleId (外键)

  • 模型:角色
    领域:
  • Id ( PrimaryKey )


  • User 模型中的关联是这样的(如果用户只有一个角色):
          User.belongsTo(models.Role);
    如果您更改默认方案,则必须确定它:
  • 模型:用户
    领域:
  • Id ( PrimaryKey )
  • i_am_reference_iD(角色 ID 的外键)

  •     User.belongsTo(models.Role, {foreignKey: 'i_am_reference_iD'});
    Sequelize 有完整的文档。你需要研究它以避免他们在开发时间上浪费太多时间的错误。
    你也需要清理你的代码。

    关于node.js - 使用 id 更新用户角色的 API - Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66994633/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com