main.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const express = require('express')
  2. const httpProxy = require('http-proxy')
  3. const request = require('request')
  4. const app = express()
  5. const assetsProxy = httpProxy.createProxyServer({
  6. target: 'https://www.heroforge.com',
  7. xfwd: false,
  8. secure: false,
  9. changeOrigin: true,
  10. autoRewrite: true,
  11. protocolRewrite: 'http',
  12. selfHandleResponse: false
  13. })
  14. app.use(/^\/$/, (req, res) => {
  15. request('https://www.heroforge.com', (err, response, body) => {
  16. if (err) res.status(500).send(err)
  17. else {
  18. let html = body
  19. .replace(/<script[^>]+googletagmanager.*<\/script>/g, '<!-- google tag manager -->')
  20. .replace(/<img[^>]+facebook.*>/g, '<!-- facebook -->')
  21. .replace('https://connect.facebook.net/en_US/fbevents.js', '')
  22. .replace('</body>', '<script type="text/javascript" src="/custom/main.js"></script></body>')
  23. res.status(200)
  24. .set('Content-Type', 'text/html')
  25. .send(html)
  26. }
  27. })
  28. })
  29. app.use('/custom/', express.static('./dist'))
  30. app.use('/', (req, res) => {
  31. assetsProxy.web(req, res)
  32. })
  33. app.listen(9011)