Node.js deployment is the default Nitro preset.
Preset: node-server
(switch to this preset)
Build project using nitro CLI:
nitro build
When running nitro build
with the Node server preset, the result will be an entry point that launches a ready-to-run Node server. To try output:
$ node .output/server/index.mjsListening on http://localhost:3000
You can now deploy fully standalone .output
directory to the hosting of your choice.
You can customize server behavior using following environment variables:
NITRO_PORT
or PORT
(defaults to 3000
)NITRO_HOST
or HOST
NITRO_SSL_CERT
and NITRO_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.Preset: node-cluster
(switch to this preset)
For more performance and leveraging multi core handling, you can use cluster preset.
In addition to node-server
environment variables, you can customiize behavior:
NITRO_CLUSTER_WORKERS
: Number of cluster workers (default is Number of available cpu cores)Preset: node
(switch to this preset)
Nitro also has a more low-level preset that directly exports a function with (req, res) => {}
signature usable for middleware and custom servers.
When running nitro build
with the Node preset, the result will be an entry point exporting a function with the (req, res) => {}
signature.
Example:
import { createServer } from 'node:http'import handler from './.output/server'const server = createServer(handler)server.listen(8080)