server.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const compression = require('compression');
  2. const express = require('express');
  3. const https = require('https');
  4. const http = require('http');
  5. const fs = require('fs');
  6. const app = express();
  7. const thirdTour = process.argv[2] == 3;
  8. const forcePort = process.argv[3];
  9. const useHttp = process.argv[4] !== 'https';
  10. const publicFolderName = thirdTour ? 'public3' : 'public';
  11. const port = forcePort ? +forcePort : (thirdTour ? 8443 : 80);
  12. app.set('etag', false);
  13. app.use((req, res, next) => {
  14. res.set('Cache-Control', 'no-store');
  15. next();
  16. });
  17. app.use(compression());
  18. app.use(express.static(publicFolderName));
  19. app.get('/', (req, res) => {
  20. res.sendFile(__dirname + `/${publicFolderName}/index.html`);
  21. });
  22. const server = useHttp ? http : https;
  23. let options = {};
  24. if(!useHttp) {
  25. options.key = fs.readFileSync(__dirname + '/certs/server-key.pem');
  26. options.cert = fs.readFileSync(__dirname + '/certs/server-cert.pem');
  27. }
  28. server.createServer(options, app).listen(port, () => {
  29. console.log('Listening port:', port, 'folder:', publicFolderName);
  30. });