Guest User

Untitled

a guest
Dec 15th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. const express = require('express');
  2. const puppeteer = require('puppeteer');
  3. const request = require('request');
  4. const isBot = require('isbot');
  5. const renderApp = express();
  6. const renderAppPort = 80;
  7. const renderedAppPort = 4200;
  8.  
  9. renderApp.get('*', (req, res) => {
  10. const requestUrl = `${req.protocol}://${req.hostname}:${renderedAppPort}${req.originalUrl}`
  11. const userAgentIsBot = isBot(req.headers['user-agent']);
  12.  
  13. if (userAgentIsBot) {
  14. (async () => {
  15. const browser = await puppeteer.launch();
  16. const page = await browser.newPage();
  17. await page.goto(requestUrl);
  18.  
  19. res.send(await page.content());
  20.  
  21. await browser.close();
  22. })();
  23. } else {
  24. request({
  25. method: req.method,
  26. url: requestUrl
  27. }, (error, response, body) => {
  28. res.send(body);
  29. });
  30. }
  31. });
  32.  
  33. renderApp.listen(renderAppPort, () => {
  34. console.log(`Server listening on ${renderAppPort}`);
  35. });
Add Comment
Please, Sign In to add comment