Nuxt/docs/content/2.guide/5.deployment/99.presets/node.md

1.4 KiB

Node.js function

Discover the Node.js function preset with Nitro to attach Nuxt as a middleware to any Node.js server.

::list

  • Compatible with many Node.js servers
  • Drop-in usage with express or native HTTP server
  • Loads only the chunks required to render the request for optimal cold start timing ::

::alert{icon=IconPresets} Back to presets list. ::

Usage

You can use the Nuxt config to explicitly set the preset to use:

export default {
  nitro: {
    preset: 'node'
  }
}

Or directly use the NITRO_PRESET environment variable when running nuxt build:

NITRO_PRESET=node npx nuxt build

Entry point

When running nuxt build with the Node preset, the result will be an entry point exporting a function with the familiar (req, res) => {} signature used in express, h3, etc.

::alert{type=warning} It is not recommended to use this preset directly, and particularly not with a 3rd-party server. ::

Example

Express middleware

import express from 'express'
import handler from './.output/server'

const app = express()

app.use(handler)
app.listen(3000)

Node server

import { createServer } from 'node:http'
import handler from './.output/server'

const server = createServer(handler)
server.listen(8080)