[英]How to change default value after delete with Sequelize Model and NodeJS?
我创建了一个 controller 来删除我的 Sequelize Model 的记录,但现在我遇到了一个麻烦,我不知道如何在删除记录后必须更改defaultValue
。 让我在下面演示我的代码。
我有一个用户 Model:
module.exports = (sequelize, Sequelize) => {
const User = sequelize.define("user", {
user_id: {
type: Sequelize.STRING,
autoIncrement: true,
primaryKey: true,
},
username: {
type: Sequelize.STRING,
},
password: {
type: Sequelize.STRING,
},
full_name: {
type: Sequelize.STRING,
},
email: {
type: Sequelize.STRING,
},
role_id: {
type: Sequelize.STRING,
},
is_active: {
type: Sequelize.BOOLEAN,
defaultValue: true
},
created_date: {
type: Sequelize.DATE,
},
created_by: {
type: Sequelize.STRING,
},
updated_date: {
type: Sequelize.DATE,
},
updated_by: {
type: Sequelize.STRING,
},
});
return User;
};
我已经创建了一个删除 controller:
// delete user
export async function deleteUser(req, res) {
try {
const user = await User.findByIdAndDelete(req.params.user_id);
if (!user) {
return res.status(404).send();
}
res.send(user);
} catch (error) {
return res.status(500).json({
success: false,
message: "Server error. Please try again.",
error: error.message,
});
}
}
现在我想知道如何在删除后将is_active
的defaultValue
值更改为 0。
据我了解,您似乎只想更改 is_active 。 因此,我建议您使用 findByIdAndUpdate 查询并将 is_active 设置为 0。
代码示例
let doc = await User.findByIdAndUpdate(id,{$set: {is_active: 0}});
if(!doc) {
throw new Error('Deletion failed');
}
doc = await User.findById(id); // it will retrieve the updated result;
res.json(doc.toJSON());
注意:此过程不会从数据库中删除用户。 因此,在验证/验证用户时,还要检查 is_active 字段。
总是自己做。 海兹
// delete user
export async function deleteUser(req, res) {
const id = req.params.user_id;
try {
const user_id = await User.findById(id);
const is_active = await User.update({ is_active: 0 });
res.status(200).json({
user_id,
is_active,
success: true,
message: "User is deleted succesfully",
data: null,
});
} catch (error) {
console.log(error);
res.status(500).json({
success: false,
message: "Server error. Please try again.",
error: error.message,
data: null,
});
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.