Node.js

使用 Node.js 运行时运行 Nitro 应用。

预设: node_server

Node.js 是生产构建的默认 Nitro 输出预设。

使用 Nitro CLI 构建项目:

nitro build

使用 Node 服务器预设时,构建输出是一个入口点,用于启动一个可直接运行的 Node 服务器。要在本地试用该输出:

$ node .output/server/index.mjs
Listening on http://localhost:3000

现在,你可以将完全独立的 .output 目录部署到你选择的托管平台。

#环境变量

你可以使用以下环境变量自定义服务器行为:

  • NITRO_PORTPORT(默认为 3000
  • NITRO_HOSTHOST
  • NITRO_UNIX_SOCKET - 设置为套接字文件路径时,服务器会监听所提供的 UNIX 套接字
  • NITRO_SSL_CERTNITRO_SSL_KEY - 同时设置这两个变量时,服务器会以 HTTPS 模式启动。这仅用于测试;在生产环境中,请将 Nitro 服务器运行在终止 SSL 的反向代理之后,例如 nginx 或 Cloudflare
  • NITRO_SHUTDOWN_DISABLED - 设置为 'true' 以跳过优雅关闭。默认为 'false'
  • NITRO_SHUTDOWN_SIGNALS - 触发优雅关闭的信号列表,以空格分隔。默认为 'SIGINT SIGTERM'
  • NITRO_SHUTDOWN_TIMEOUT - 强制关闭发生前的时间(以毫秒为单位)。默认为 '30000'
  • NITRO_SHUTDOWN_FORCE - 设置为 'true' 时,在关闭过程结束时调用 process.exit()。设置为 'false' 时,进程会直接等待事件循环清空。默认为 'true'

#集群模式

预设: node_cluster

要利用多个 CPU 核心来提升性能,请使用集群预设。

#环境变量

除了上述 node_server 环境变量之外:

  • NITRO_CLUSTER_WORKERS:集群工作进程数量(默认为可用 CPU 核心数)

#处理器(高级)

预设: node_middleware

Nitro 还提供了一个更底层的预设,可以导出一个中间件函数,以便你将其接入自定义服务器。

使用 Node 中间件预设时,构建输出是一个导出中间件处理器的入口点。

示例:

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

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