Для кеширования я использую эту библиотеку
cache-all . И столкнулся с такой проблемой, что при редактировании данных старые данные, которые хранятся в кэше, не обновляют изменения, пока не истечет время хранения кэша. Как сделать кэширование при изменении данных?
Я устанавливаю загрузку кэширования в index.js:
const cache = require('cache-all')
cache.init({
expireIn: 86400
})
routing:
const express = require("express");
const router = express.Router();
const controller = require("../controllers/users");
const cache = require('cache-all')
router.get("/get_all", cache.middleware(86400), controller.getAll);
router.patch("/patch/:USER_ID", controller.update);
module.exports = router;
А теперь, что нужно сделать, чтобы кэш обновлялся при каждом изменении данных? Вот мой не рабочий вариант:
const cache = require('cache-all')
module.exports.update = async function (req, res) {
try {
let users = await User.findOne({ USER_ID: req.params.USER_ID });
await users.set({
LOGIN: req.body.LOGIN
})
users.save().then(function () {
return cache.set('patch:' + req.params.USER_ID, users);
}).then(() => {
return res.status(200).json(users);
})
} catch (e) {
errorHandler(res, e);
}
};
Или вы можете посоветовать более удобную и простую в использовании библиотеку для кэширования?