nuxt.render(req, res)

You can use nuxt.js as a middleware with nuxt.render for your node.js server.

Example with Express.js:

const { Nuxt, Builder } = require('nuxt')

const app = require('express')()
const isProd = (process.env.NODE_ENV === 'production')
const port = process.env.PORT || 3000

// We instantiate nuxt.js with the options
const config = require('./nuxt.config.js')
config.dev = !isProd
const nuxt = new Nuxt(config)

// Render every route with nuxt.js
app.use(nuxt.render)

// Build only in dev mode with hot-reloading
if (config.dev) {
  new Builder(nuxt).build()
  .then(listen)
  .catch((error) => {
    console.error(error)
    process.exit(1)
  })
}
else {
  listen()
}

function listen() {
  // Listen the server
  app.listen(port, '0.0.0.0')
  console.log('Server listening on localhost:' + port)
}

It's recommended to call nuxt.render at the end of your middlewares since it will handle the rendering of your web application and won't call next()

Caught a mistake or want to contribute to the documentation? Edit this page on GitHub!