@hiswe/koa-nuxt
v1.0.0
Published
koa middleware for nuxt
Downloads
6
Readme
koa-nuxt
Koa 2 middleware for Nuxt 2 This is mostly the same code as create-nuxt-app – koa
why
It just:
- removes some boilerplate
- makes it possible to call the nuxt render in different places (like in an error handler)
koa-session caveats
In order to use koa-session without having Can't set headers after they are sent
errors you'll need to call it manually before calling the renderNuxt
middleware
const sessionConfig = {
// don't autoCommit because we need to control when headers are send
autoCommit: false,
}
app.use(session(sessionConfig, app))
app.use(async (ctx, next) => {
ctx.session.now = new Date().valueOf()
// ensure headers are sent before nuxt
await ctx.session.manuallyCommit()
// nuxt render can be safely be done after that
await next()
})
minimal example
import Koa from 'koa'
import { Nuxt, Builder } from 'nuxt'
import koaNuxt from '@hiswe/koa-nuxt'
import nuxtConfig from '../nuxt.config.js'
const app = new Koa()
nuxtConfig.dev = !(app.env === `production`)
async function start() {
const nuxt = new Nuxt(nuxtConfig)
// create the nuxt middleWare
const renderNuxt = koaNuxt(nuxt)
// re-build with nuxt on development
// this can take some time
if (nuxtConfig.dev) {
const builder = new Builder(nuxt)
await builder.build()
}
// call the middleware in last position
// it will take care of anything not handled by our app
app.use(renderNuxt)
// launch app
app.listen(process.env.HOST || `127.0.0.1`, process.env.PORT || 3000)
}
start()
extensive example
go see this repository