BVB Source Codes

prerender Show httpHeaders.js Source code

Return Download prerender: download httpHeaders.js Source code - Download prerender Source code - Type:.js
  1. var he = require('he');
  2.  
  3. module.exports = {
  4.     afterPhantomRequest: function(req, res, next) {
  5.         if(req.prerender.documentHTML) {
  6.             var statusMatch = /<meta[^<>]*(?:name=['"]prerender-status-code['"][^<>]*content=['"]([0-9]{3})['"]|content=['"]([0-9]{3})['"][^<>]*name=['"]prerender-status-code['"])[^<>]*>/i,
  7.                 headerMatch = /<meta[^<>]*(?:name=['"]prerender-header['"][^<>]*content=['"]([^'"]*?): ?([^'"]*?)['"]|content=['"]([^'"]*?): ?([^'"]*?)['"][^<>]*name=['"]prerender-header['"])[^<>]*>/gi,
  8.                 head = req.prerender.documentHTML.toString().split('</head>', 1).pop(),
  9.                 statusCode = 200,
  10.                 match;
  11.  
  12.             if (match = statusMatch.exec(head)) {
  13.                 statusCode = match[1] || match[2];
  14.                 req.prerender.documentHTML = req.prerender.documentHTML.toString().replace(match[0], '');
  15.             }
  16.  
  17.             while (match = headerMatch.exec(head)) {
  18.                 res.setHeader(match[1] || match[3], he.decode(match[2] || match[4]));
  19.                 req.prerender.documentHTML = req.prerender.documentHTML.toString().replace(match[0], '');
  20.             }
  21.  
  22.             if (statusCode != 200) {
  23.                 return res.send(statusCode, req.prerender.documentHTML);
  24.             }
  25.         }
  26.  
  27.         next();
  28.     }
  29. };
  30.  
downloadhttpHeaders.js Source code - Download prerender Source code
Related Source Codes/Software:
libsodium - A modern and easy-to-use crypto library. 2017-01-09
Side-Menu.Android - Side menu with some categories to choose. ... 2017-01-09
docker-gitlab - Dockerized GitLab http://www.da... 2017-01-09
sinon - Test spies, stubs and mocks for JavaScript. ... 2017-01-09
in-view - Get notified when a DOM element enters or exits th... 2017-01-09
falcon - Falcon is a low-level, high-performance Python fra... 2017-01-09
ImageOptim - GUI image optimizer for Mac htt... 2017-01-09
node-style-guide - A guide for styling your node.js / JavaScript code... 2017-01-09
FDFullscreenPopGesture - A UINavigationController's category to enable full... 2017-01-10
Gource - oftware version control visualization ... 2017-01-10
CLNDR - 2017-02-19
OptiKey - OptiKey - Full computer control and speech with yo... 2017-02-19
MRProgress - Collection of iOS drop-in components to visualize ... 2017-02-19
BGARefreshLayout-Android - On a variety of drop-down refresh effect, loading ... 2017-02-19
angular-http-auth - 2017-02-19
pydata-book - Materials and IPython notebooks for "Python for Da... 2017-02-19
xenia - Xbox 360 Emulator Research Project ... 2017-02-18
flux-comparison - 2017-02-18
luvit - Lua + libUV + jIT = pure awesomesauce ... 2017-02-18
orleans - Orleans - Distributed Virtual Actor Model ... 2017-02-18

 Back to top