#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, которая является типом ключа / значения БД.