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_PORT
或PORT
(默认为3000
)NITRO_HOST
或HOST
NITRO_UNIX_SOCKET
- 如果提供(所需套接字文件的路径),服务将通过提供的 UNIX 套接字提供服务。NITRO_SSL_CERT
和NITRO_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)