Node.js Preset-node-server

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

Preset: node-server

Node.js 是生产构建的默认 nitro 输出预设,并且 Nitro 具有原生 Node.js 运行时支持。

使用 nitro CLI 构建项目:

bash
nitro build

当使用 Node 服务器预设运行nitro build时,结果将是一个启动随时可运行的 Node 服务器的入口点。尝试输出:

bash
$ 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' 时禁用正常关机功能。如果设置为 'true',则会绕过正常关机以加快开发过程。默认为 'false'
  • NITRO_SHUTDOWN_SIGNALS - 允许您指定应处理哪些信号。每个信号应以空格分隔。默认为 'SIGINT SIGTERM'
  • NITRO_SHUTDOWN_TIMEOUT - 设置强制关闭发生之前的时间(以毫秒为单位)。默认为 '30000' 毫秒。
  • NITRO_SHUTDOWN_FORCE - 设置为 true 时,它会在关闭过程结束时触发 process.exit()。如果设置为 'false',则该过程将简单地让事件循环清除。默认为 'true'

Cluster mode

Preset: node-cluster

为了获得更好的性能并利用多核处理,您可以使用集群预设。

环境变量

除了 node-server 环境变量之外,您还可以自定义行为:

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

Handler (advanced)

Preset: node Nitro 还具有更低级别的预设,可直接导出带有 (req, res) => {} 签名的函数,可用于中间件和自定义服务器。

使用 Node 预设运行 nitro build 时,结果将是一个入口点,导出带有 (req, res) => {} 签名的函数。

Example:

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

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