javascript - 如何在 Node Js 中更改 User isActive:boolean 的值
问题描述
具有 isActive:Boolean 的用户模型
单击按钮时重定向到路由并从参数中查找具有 id 的用户。
找到用户后,它会检查 isActive 的值。
如果值不为真,则将其更改为假,或者如果值为真,则将其更改为真
<form action="/admin/user/<%= user._id %>/status?_method=PUT" method="POST">
<button type="submit" class="btn btn-success btn-group-sm"><i class="fas fa-check-circle"></i></button>
</form>
将请求作为 PUT 发送到路由的按钮
const mongoose = require("mongoose");
const passportLocalMongoose = require("passport-local-mongoose");
const UserSchema = mongoose.Schema({
name: String,
mobile: String,
gender: String,
username: String,
password: String,
isActive: {
type: Boolean,
default: true
},
created: {
type: Date,
default: Date.now()
}
});
UserSchema.plugin(passportLocalMongoose);
const User = new mongoose.model("user", UserSchema);
module.exports = User;
查找和更改 isActive 值的路由
router.put("/admin/user/:id/status", (req, res) => {
User.findById(req.params.id, (err, foundUser) => {
console.log(foundUser.isActive);
if (err) {
console.log(err);
} else if (foundUser.isActive == false) {
User.update({_id: req.params.id}, {$set: {isActive: true}});
res.redirect("/admin/users-details");
} else {
User.update({_id: req.params.id}, {$set: {isActive: false}});
res.redirect("/admin/users-details");
}
});
});
解决方案
尝试等到更新过程在重定向页面之前抛出结果,通过示例您可以看到尝试更新记录时会发生什么:
router.put("/admin/user/:id/status", (req, res) => {
User.findById(req.params.id, (err, foundUser) => {
console.log(foundUser.isActive);
if (err) {
console.log(err);
return res.redirect("/admin/users-details?error=" + err.toString());
}
User.update({ _id: foundUser._id }, { $set: { isActive: !foundUser.isActive } }, (err2, result) => {
console.log(err, result);
res.redirect("/admin/users-details");
});
});
});
推荐阅读
- ruby-on-rails - rails recaptcha 错误:我们检测到您的站点未验证 reCAPTCHA 解决方案。它一直返回 false
- c# - 在 C# 中连续读取 XML
- matlab - MATLAB - 'lib\sift\bin\siftfeat' 未被识别为内部或外部命令、可运行程序或批处理文件
- java - 如果 JSON 数组为空,则更改文本
- javascript - 从 json 获取值并设置为选择选项
- javascript - for 循环是否等同于方法?
- google-chrome - 我在谷歌浏览器上的 PDF 阅读器出现问题
- reactjs - 我如何在反应中添加或删除滚动类?
- oauth-2.0 - 在通过 client_credentials 授权请求的令牌中返回 Azure AD 应用程序角色
- mysql - MYSQL 查询查找 RANK