Данные кэша узла не сохраняются. Очищается при сбросе подключения к странице

#javascript #node.js #typescript #caching #local-storage

#javascript #node.js #машинопись #кэширование #локальное хранилище

Вопрос:

Я привел этот простой пример, чтобы увидеть, как использовать модуль кэша узлов. Но если я отключусь от узла и повторно подключусь, кэш будет очищен. Есть ли способ убедиться, что данные сохраняются до тех пор, пока я их не очищу? Мой код приведен ниже, спасибо за вашу помощь.

 const express = require('express');
const app = express();
const port = process.env.port || 3000

const NodeCache = require( "node-cache" );
const myCache = new NodeCache();

app.listen(port, (err :boolean)=> {
if (err){
    return console.log(err);
}
return console.log(`server is listening on ${port}`);
})

app.get('/', (req, res)=>{
    console.log(req.originalUrl);
    res.send('I am trying');
})

app.get('/add/:input/:value', (req,res)=>{
    let i = req.params.input;
    let v = req.params.value;
    const success = myCache.set(i, v);
    console.log(success);
    res.send(`key: ${i} value: ${v}`);
})

app.get('/loop', (req,res)=>{
    let mykeys = myCache.keys();

    res.send(mykeys);
})
  

Комментарии:

1. Можете ли вы пояснить, что вы подразумеваете под отключением и повторным подключением? Перезапустить приложение или перезагрузить браузер?

2. Я имею в виду, что для «запуска соединения» я набираю «узел index.js «и он начинает прослушивать порт 5000, и когда я нажимаю ctrl C и завершаю это соединение, затем переподключаюсь (введите node index.js снова), данные исчезли. Это помогает? Если нет, я могу попытаться объяснить немного лучше

3. Да, это очень помогает. Так что, по сути, вы просто перезапускаете приложение. Модуль кэша узлов хранит данные в оперативной памяти и не записывает их в файл, поэтому при остановке приложения (нажмите ctrl c) данные исчезают. Вы можете сами записать данные в файл json непосредственно перед остановкой приложения или использовать БД, такую как Redis, которая является типом ключа / значения БД.