From f7d9688a6214e789d6d4e81ae066c2e509abbc3f Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 20 Sep 2019 15:24:49 +0800 Subject: [PATCH] feat: 100 times cache time for wrong path --- lib/middleware/parameter.js | 4 ++++ test/middleware/parameter.js | 2 ++ 2 files changed, 6 insertions(+) diff --git a/lib/middleware/parameter.js b/lib/middleware/parameter.js index 2353acfdc..4df7e3fbb 100644 --- a/lib/middleware/parameter.js +++ b/lib/middleware/parameter.js @@ -2,11 +2,15 @@ const he = require('he'); const mercury_parser = require('@postlight/mercury-parser'); const cheerio = require('cheerio'); const got = require('@/utils/got'); +const config = require('@/config').value; module.exports = async (ctx, next) => { await next(); if (!ctx.state.data && !ctx._matchedRoute) { + ctx.set({ + 'Cache-Control': `public, max-age=${config.cache.routeExpire * 100}`, + }); throw Error('wrong path'); } diff --git a/test/middleware/parameter.js b/test/middleware/parameter.js index 1e3f56b0b..e269f2041 100644 --- a/test/middleware/parameter.js +++ b/test/middleware/parameter.js @@ -3,6 +3,7 @@ const server = require('../../lib/index'); const request = supertest(server); const Parser = require('rss-parser'); const parser = new Parser(); +const config = require('../../lib/config').value; afterAll(() => { server.close(); @@ -132,6 +133,7 @@ describe('wrong_path', () => { it(`wrong_path`, async () => { const response = await request.get('/wrong'); expect(response.status).toBe(404); + expect(response.headers['cache-control']).toBe(`public, max-age=${config.cache.routeExpire * 100}`); expect(response.text).toMatch(/Error: wrong path/); }); });