rsnext/test/integration/custom-routes/server.js
2020-05-18 15:24:37 -04:00

36 lines
878 B
JavaScript

const path = require('path')
const http = require('http')
const server = http.createServer((req, res) => {
const pagePath = (page) => path.join('.next/serverless/pages/', page)
const render = (page) => {
require(`./${pagePath(page)}`).render(req, res)
}
const apiCall = (page) => {
require(`./${pagePath(page)}`).default(req, res)
}
switch (req.url) {
case '/blog/post-1': {
return render('/blog/[post]')
}
case '/query-rewrite/first/second': {
return render('/with-params')
}
case '/api-hello-param/first': {
return apiCall('/api/hello')
}
case '/api-dynamic-param/first': {
return apiCall('/api/dynamic/[slug]')
}
default: {
res.statusCode(404)
return res.end('404')
}
}
})
const port = process.env.PORT || 3000
server.listen(port, () => {
console.log('ready on', port)
})