2017-01-17 07:23:06 +00:00
|
|
|
const Koa = require('koa')
|
|
|
|
const next = require('next')
|
|
|
|
const Router = require('koa-router')
|
|
|
|
|
2017-08-10 18:15:46 +00:00
|
|
|
const port = parseInt(process.env.PORT, 10) || 3000
|
2017-01-17 07:23:06 +00:00
|
|
|
const dev = process.env.NODE_ENV !== 'production'
|
|
|
|
const app = next({ dev })
|
|
|
|
const handle = app.getRequestHandler()
|
|
|
|
|
|
|
|
app.prepare()
|
|
|
|
.then(() => {
|
|
|
|
const server = new Koa()
|
|
|
|
const router = new Router()
|
|
|
|
|
2017-02-28 20:49:58 +00:00
|
|
|
router.get('/a', async ctx => {
|
|
|
|
await app.render(ctx.req, ctx.res, '/b', ctx.query)
|
|
|
|
ctx.respond = false
|
2017-01-17 07:23:06 +00:00
|
|
|
})
|
|
|
|
|
2017-02-28 20:49:58 +00:00
|
|
|
router.get('/b', async ctx => {
|
|
|
|
await app.render(ctx.req, ctx.res, '/a', ctx.query)
|
|
|
|
ctx.respond = false
|
2017-01-17 07:23:06 +00:00
|
|
|
})
|
|
|
|
|
2017-02-28 20:49:58 +00:00
|
|
|
router.get('*', async ctx => {
|
|
|
|
await handle(ctx.req, ctx.res)
|
|
|
|
ctx.respond = false
|
2017-01-17 07:23:06 +00:00
|
|
|
})
|
|
|
|
|
2017-02-28 20:49:58 +00:00
|
|
|
server.use(async (ctx, next) => {
|
|
|
|
ctx.res.statusCode = 200
|
|
|
|
await next()
|
2017-01-18 03:45:29 +00:00
|
|
|
})
|
|
|
|
|
2017-01-17 07:23:06 +00:00
|
|
|
server.use(router.routes())
|
2017-08-10 18:15:46 +00:00
|
|
|
server.listen(port, (err) => {
|
2017-01-17 07:23:06 +00:00
|
|
|
if (err) throw err
|
2017-08-10 18:15:46 +00:00
|
|
|
console.log(`> Ready on http://localhost:${port}`)
|
2017-01-17 07:23:06 +00:00
|
|
|
})
|
|
|
|
})
|