const { createServer } = require("http"); const { parse } = require("url"); const next = require("next"); const dev = process.env.NODE_ENV !== "production"; const port = 8001; // when using middleware `hostname` and `port` must be provided below const app = next({ dev, port }); const handle = app.getRequestHandler(); app.prepare().then(() => { createServer(async (req, res) => { try { // Be sure to pass `true` as the second argument to `url.parse`. // This tells it to parse the query portion of the URL. const parsedUrl = parse(req.url, true); const { pathname, query } = parsedUrl; await handle(req, res, parsedUrl); } catch (err) { console.error("Error occurred handling", req.url, err); res.statusCode = 500; res.end("internal server error"); } }).listen(port, process.env.NEXT_PUBLIC_HOSTNAME, (err) => { if (err) throw err; console.log( `> Ready on http://${process.env.NEXT_PUBLIC_HOSTNAME}:${port}` ); }); });