| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- var express = require('express');
- var router = express.Router();
- const redis = require('../../libs/redis');
- const { coloringList } = require('./config');
- const CACHE_PREFIX = "art_v2";
- // const CACHE_EXPIRES = 60; // 60s刷新一次
- const CACHE_EXPIRES = 600;
- // coloring pages 页路由
- router.get('/', function (req, res, next) {
- (async function () {
- let cacheKey = `${CACHE_PREFIX}_coloring-pages`;
- let htmlData = await redis.getAsync(cacheKey);
- // htmlData = null;
- if (!htmlData) {
- let data = {
- uri: req.originalUrl,
- list: coloringList,
- };
- // 渲染EJS模板到内存中
- res.render('v2/coloring-pages', data, async (err, html) => {
- if (err) {
- // 如果渲染出错,调用next()传递错误
- return next(err);
- }
- // 渲染成功,存redis, 发送数据到客户端
- htmlData = html;
- try {
- await redis.set(cacheKey, htmlData, 'EX', CACHE_EXPIRES);
- } catch (e) {
- console.error(e);
- }
- res.send(htmlData);
- });
- } else {
- // 缓存命中, 直接发送缓存数据
- res.set({ 'X-From-Cache': 'true' });
- res.send(htmlData);
- }
- })().catch(next);
- });
- module.exports = router;
|