46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
const path = require('path')
|
|
const http = require('http')
|
|
const url = require('url')
|
|
|
|
const server = http.createServer((req, res) => {
|
|
const render = async (page) => {
|
|
const mod = require(`./${path.join('.next/serverless/pages/', page)}`)
|
|
try {
|
|
return await (mod.render || mod.default || mod)(req, res)
|
|
} catch (err) {
|
|
res.statusCode = 500
|
|
return res.end('internal error')
|
|
}
|
|
}
|
|
|
|
const { pathname } = url.parse(req.url)
|
|
|
|
switch (pathname) {
|
|
case '/about':
|
|
return render('/about.js')
|
|
case '/api/post':
|
|
case '/api/post/hello':
|
|
case '/api/post/hello/world': {
|
|
return render('/api/post/[[...slug]].js')
|
|
}
|
|
case '/nested':
|
|
case '/nested/hello':
|
|
case '/nested/hello/world': {
|
|
return render('/nested/[[...optionalName]].js')
|
|
}
|
|
case '/':
|
|
case '/hello':
|
|
case '/hello/world': {
|
|
return render('/[[...optionalName]].js')
|
|
}
|
|
default: {
|
|
res.statusCode = 404
|
|
return res.end('404')
|
|
}
|
|
}
|
|
})
|
|
|
|
const port = process.env.PORT || 3000
|
|
server.listen(port, () => {
|
|
console.log('ready on', port)
|
|
})
|