Модель пользователя, которая имеет isActive: Boolean
При нажатии кнопки происходит перенаправление на маршрут и поиск пользователя с идентификатором из параметров.
после поиска пользователя проверяется значение 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>
Кнопка, которая отправляет req как 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");
}
});
});