Install the memory-cache package:
npm install memory-cache
Import the required modules in your Express.js application:
const express = require('express');
const cache = require('memory-cache');
Create an instance of the Express.js app:
const app = express();
const port = 3000; // You can choose any port you like
Define a function to fetch and compute the data you want to cache. For this example, let's say you want to cache the result of an expensive database query:
function fetchDataFromDatabase() {
// Simulate fetching data from a database
return 'This is the data fetched from the database.';
}
Set up a route that uses caching to store and retrieve the data:
app.get('/data', (req, res) => {
const cachedData = cache.get('cachedData');
if (cachedData) {
// If data is in the cache, return it
res.send(`Cached Data: ${cachedData}`);
} else {
// If data is not in the cache, fetch it and store it in the cache
const newData = fetchDataFromDatabase();
cache.put('cachedData', newData, 60000); // Cache for 60 seconds (adjust as needed)
res.send(`Fetched Data: ${newData}`);
}
});
Start the Express.js server:
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
In this example, we use the memory-cache library to store the data in memory for a specified amount of time (60 seconds in this case). If the data is found in the cache, it is returned directly, reducing the load on your database or other data source. If the data is not in the cache, it is fetched and then stored in the cache for future use.
This is a basic example of server-side caching in Express.js with Node.js. Depending on your application's needs, you can implement more advanced caching strategies or use dedicated caching solutions like Redis for more control and scalability.