1. const crypto = require('crypto');
    2. {
    3. security: [ 'JWT' ],
    4. description: () => '获取wkt',
    5. // pathParmeters: pathParmeters4PID,
    6. type: 'GET',
    7. url: ({ baseUrl }) => `${baseUrl}/ssss`,
    8. async fun(req, res) {
    9. res.setHeader('Cache-Control', 'no-cache')
    10. const hash = crypto.createHash('sha1').update(content).digest('hex')
    11. res.setHeader('Etag', hash)
    12. if(req.headers['if-none-match'] === hash){
    13. console.log('Etag协商缓存命中.....')
    14. res.statusCode = 304
    15. res.end()
    16. return
    17. }
    18. if (new Date(req.headers['if-modified-since']).getTime() + 15 * 1000 > Date.now()) {
    19. console.log('协商缓存命中....')
    20. Util.ResponseUtil.json({
    21. res, status: 304,
    22. })
    23. return
    24. }
    25. const data = {
    26. name: 'asgsa',
    27. age: 14,
    28. }
    29. // 强缓存 http1.0
    30. res.setHeader('Expires', new Date(Date.now() + 5 * 1000).toUTCString())
    31. // 强缓存 http1.1 (优先)
    32. res.setHeader('Cache-Control', 'max-age=10')
    33. // 协商缓存 http1.0
    34. res.setHeader('last-modified', new Date().toUTCString())
    35. // // 协商缓存 http1.1 (优先)
    36. Util.ResponseUtil.json({ res, data })
    37. },
    38. },