Update Koa example for Koa 2 with async/await (#1317)

This commit is contained in:
Arana Jhonny 2017-02-28 13:49:58 -07:00 committed by Tim Neutkens
parent 46b5d6a445
commit 68d48cb004
2 changed files with 14 additions and 16 deletions

View file

@ -6,8 +6,8 @@
"start": "NODE_ENV=production node server.js"
},
"dependencies": {
"koa": "^1.2.4",
"koa-router": "^5.4.0",
"koa": "^2.0.1",
"koa-router": "^7.1.0",
"next": "^2.0.0-beta",
"react": "^15.4.2",
"react-dom": "^15.4.2"

View file

@ -11,26 +11,24 @@ app.prepare()
const server = new Koa()
const router = new Router()
router.get('/a', function *() {
app.render(this.req, this.res, '/b', this.query)
this.respond = false
router.get('/a', async ctx => {
await app.render(ctx.req, ctx.res, '/b', ctx.query)
ctx.respond = false
})
router.get('/b', function *() {
app.render(this.req, this.res, '/a', this.query)
this.respond = false
router.get('/b', async ctx => {
await app.render(ctx.req, ctx.res, '/a', ctx.query)
ctx.respond = false
})
router.get('*', function *() {
handle(this.req, this.res)
this.respond = false
router.get('*', async ctx => {
await handle(ctx.req, ctx.res)
ctx.respond = false
})
server.use(function *(next) {
// Koa doesn't seems to set the default statusCode.
// So, this middleware does that
this.res.statusCode = 200
yield next
server.use(async (ctx, next) => {
ctx.res.statusCode = 200
await next()
})
server.use(router.routes())