Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express');
- const puppeteer = require('puppeteer');
- const request = require('request');
- const isBot = require('isbot');
- const renderApp = express();
- const renderAppPort = 80;
- const renderedAppPort = 4200;
- renderApp.get('*', (req, res) => {
- const requestUrl = `${req.protocol}://${req.hostname}:${renderedAppPort}${req.originalUrl}`
- const userAgentIsBot = isBot(req.headers['user-agent']);
- if (userAgentIsBot) {
- (async () => {
- const browser = await puppeteer.launch();
- const page = await browser.newPage();
- await page.goto(requestUrl);
- res.send(await page.content());
- await browser.close();
- })();
- } else {
- request({
- method: req.method,
- url: requestUrl
- }, (error, response, body) => {
- res.send(body);
- });
- }
- });
- renderApp.listen(renderAppPort, () => {
- console.log(`Server listening on ${renderAppPort}`);
- });
Add Comment
Please, Sign In to add comment