@hiswe/koa-nuxt
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i @hiswe/koa-nuxt

Weekly Downloads

3

Version

1.0.0

License

MIT

Unpacked Size

5.17 kB

Total Files

6

Last publish

Collaborators

  • hiswe