Example using [Next.js Custom Server](https://nextjs.org/docs/pages/building-your-application/configuring/custom-server) with express. Made from official [examples/custom-server](https://github.com/vercel/next.js/tree/canary/examples/custom-server) from Next.js repository.
27 lines
655 B
TypeScript
27 lines
655 B
TypeScript
import express from 'express'
|
|
import type { Request, Response } from 'express'
|
|
import { parse } from 'url'
|
|
import next from 'next'
|
|
|
|
const port = parseInt(process.env.PORT || '3000', 10)
|
|
const dev = process.env.NODE_ENV !== 'production'
|
|
const app = next({ dev })
|
|
const handle = app.getRequestHandler()
|
|
|
|
app.prepare().then(() => {
|
|
const server = express()
|
|
|
|
server.all('*', (req, res) => {
|
|
const parsedUrl = parse(req.url!, true)
|
|
handle(req, res, parsedUrl)
|
|
})
|
|
|
|
server.listen(port, () => {
|
|
console.log(
|
|
`> Server listening at http://localhost:${port} as ${
|
|
dev ? 'development' : process.env.NODE_ENV
|
|
}`,
|
|
)
|
|
})
|
|
})
|