From f10230dfc5d01f72c1aac7b2a69c2e7b2fa97959 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Sat, 21 Jan 2023 10:40:06 +0000 Subject: [PATCH] Add edge cacheing --- controllers/about.js | 12 ++++++++---- controllers/listing.js | 16 ++++++++++------ controllers/node.js | 2 ++ 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/controllers/about.js b/controllers/about.js index a7235af..0140973 100644 --- a/controllers/about.js +++ b/controllers/about.js @@ -1,4 +1,8 @@ -module.exports = (req, res) => res.render('about.html', { - bodyClass: 'about', - pageTitle: 'About' -}); +module.exports = (req, res) => { + const ONE_MONTH_IN_SECONDS = 60 * 60 * 24 * 30; + res.setHeader('Cache-Control', `s-maxage=${ONE_MONTH_IN_SECONDS}, stale-while-revalidate`); + res.render('about.html', { + bodyClass: 'about', + pageTitle: 'About' + }) +}; diff --git a/controllers/listing.js b/controllers/listing.js index 6fb8945..7727ec7 100644 --- a/controllers/listing.js +++ b/controllers/listing.js @@ -17,12 +17,16 @@ module.exports = (req, res, next) => { } tor.listNodes(query) - .then(nodes => res.render('listing.html', { - pageTitle: req.query.s ? `Search: ${req.query.s}` : false, - title, - nodes, - numOfNodes: query.limit - })) + .then(nodes => { + const ONE_HOUR_IN_SECONDS = 60 * 60; + res.setHeader('Cache-Control', `s-maxage=${ONE_HOUR_IN_SECONDS}, stale-while-revalidate`); + res.render('listing.html', { + pageTitle: req.query.s ? `Search: ${req.query.s}` : false, + title, + nodes, + numOfNodes: query.limit + }) + }) .catch(err => { if (err.statusCode === 400 && req.query.s) { err.statusMessage = 'Bad Search Query'; diff --git a/controllers/node.js b/controllers/node.js index de24e4b..74e8d81 100644 --- a/controllers/node.js +++ b/controllers/node.js @@ -15,6 +15,8 @@ module.exports = (req, res, next) => { throw err; } + const ONE_HOUR_IN_SECONDS = 60 * 60; + res.setHeader('Cache-Control', `s-maxage=${ONE_HOUR_IN_SECONDS}, stale-while-revalidate`); res.render('node.html', { pageTitle: `${data[0].type}: ${data[0].nickname}`, node: data[0],