server.js 811 B

1234567891011121314151617181920212223242526272829303132
  1. /* eslint-disable @typescript-eslint/no-require-imports */
  2. const { createServer } = require('http');
  3. const { parse } = require('url');
  4. const next = require('next');
  5. const port = Number(process.env.PORT || 4000);
  6. const app = next({ dev: false });
  7. const handle = app.getRequestHandler();
  8. app.prepare().then(() =>
  9. {
  10. const server = createServer((req, res) =>
  11. {
  12. // Be sure to pass `true` as the second argument to `url.parse`.
  13. // This tells it to parse the query portion of the URL.
  14. handle(req, res, parse(req.url, true));
  15. });
  16. server.on('error', (error) =>
  17. {
  18. if (error.code === 'EADDRINUSE')
  19. {
  20. const fallbackPort = port + 1;
  21. console.warn(`Port ${port} is in use, retrying on ${fallbackPort}...`);
  22. server.listen(fallbackPort);
  23. return;
  24. }
  25. throw error;
  26. });
  27. server.listen(port);
  28. });