Node.js server
Discover the Node.js server preset with Nitro to deploy on any Node hosting.
Default preset if none is specified or auto-detected
Loads only the required chunks to render the request for optimal cold start timing
Useful for debugging
Back to presets list.
Usage
You can use the Nuxt config to explicitly set the preset to use:
nuxt.config.js|ts
export default {
nitro: {
preset: 'node-server'
}
}
Or directly use the NITRO_PRESET
environment variable when running nuxt build
:
NITRO_PRESET=server npx nuxt build
Entry point
When running nuxt build
with the Node server preset, the result will be an entry point that launches a ready-to-run Node server.
node .output/server/index.mjs
Example
$ node .output/server/index.mjs
Listening on http://localhost:3000
Configuring defaults at runtime
This preset will respect the following runtime environment variables:
NUXT_PORT
orPORT
(defaults to3000
)NUXT_HOST
orHOST
(defaults to'localhost'
)NITRO_SSL_CERT
andNITRO_SSL_KEY
- if both are present, this will launch the server in HTTPS mode. In the vast majority of cases, this should not be used other than for testing, and the Nitro server should be run behind a reverse proxy like nginx or Cloudflare which terminates SSL.
Server timings
You can enable the nitro.timing
option to have the logs about the chunk loading and cold start performance.
nuxt.config.js|ts
export default {
nitro: {
preset: 'node-server',
timing: true
}
}
$ node .output/server/index.mjs
> Nitro Start (3ms)
Listening on http://localhost:3000
> Load chunks/nitro/static (0ms)
> Load chunks/app/render (1ms)
> Load chunks/app/client.manifest (0ms)
> Load chunks/index (3ms)
> Load chunks/app/server (2ms)
> Load chunks/app/vue3 (0ms)