Skip to content

Commit ac8a603

Browse files
authored
fix: http2 example issue (#56768)
### What? If the custom server uses `app.render(xxx)` will render the normal js files as server components in dev mode and cause 404 error when loading every non-HTML file. ### How? Fixes nodejs/help#4253, fixes #50270
1 parent f95a11f commit ac8a603

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

examples/with-http2/server.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const next = require('next')
2-
const http2 = require('http2')
3-
const fs = require('fs')
2+
const http2 = require('node:http2')
3+
const { parse } = require('node:url')
4+
const fs = require('node:fs')
45

56
const port = parseInt(process.env.PORT, 10) || 3000
67
const dev = process.env.NODE_ENV !== 'production'
@@ -15,10 +16,13 @@ const server = http2.createSecureServer({
1516
cert: fs.readFileSync('localhost-cert.pem'),
1617
})
1718

19+
const handler = app.getRequestHandler()
20+
1821
app.prepare().then(() => {
1922
server.on('error', (err) => console.error(err))
2023
server.on('request', (req, res) => {
21-
app.render(req, res, req.url || '/', req.query)
24+
const parsedUrl = parse(req.url, true)
25+
handler(req, res, parsedUrl)
2226
})
2327
server.listen(port)
2428

0 commit comments

Comments
 (0)