Я создал маршрут удаления учетной записи, чтобы удалить информацию о пользователях через определенные дни. Для этого я использовал функцию SetTimeOut (). Но проблема в том, что если по какой-то причине сервер перезагружается, это не работает. Итак, есть ли другой способ добиться этого. Спасибо.
Ниже приведен код:
router.post("/delete", async (req, res, next) => {
const mailId = req.body.email;
const deletionTime = moment().format("DD-MMM-YYYY, h:mm:ss a");
await Register.findOne({ email: mailId })
.exec()
.then(async (result) => {
if (req.body.password === result.password) {
await Register.updateOne(
{ email: mailId },
{
$set: {
accountDeleted: true,
deletionFeedback: req.body.deletionFeedback,
latitude: req.body.latitude,
longitude: req.body.longitude,
deletionDate: deletionTime,
deletionIP: req.body.deletionIP,
isp: req.body.isp,
location: req.body.location,
},
}
)
.exec()
.then(async (result) => {
setTimeout(async function(){
await Register.updateOne(
{ email: mailId },
{
$set: {
permanentlyDeleted: true,
},
}
)
.exec();
}, 60000);
res.status(200).json({
userDeleted: true,
});
})
.catch((err) => {
console.log(err);
res.status(400).json({
userDeleted: false,
});
});
} else {
res.status(400).json({
result: 0,
message: "Invalid password.",
});
}
})
.catch((err) => {
res.status(400).json({
result: 0,
message: "Invalid Email ID.",
});
});
});
Дело в том, что если я перезапускаю сервер, функция внутри метода setTimeOut () не работает. Есть ли для этого альтернатива.