# Node.js > 使用 Node.js 运行 Nitro 应用程序。 **预设:** `node_server` Node.js 是生产构建的默认 Nitro 输出预设,并且 Nitro 原生支持 Node.js 运行时。 使用 nitro CLI 构建项目: ```bash nitro build ``` 当使用 Node 服务器预设运行 `nitro build` 时,结果将是一个启动准备就绪的 Node 服务器的入口点。要尝试输出: ```bash $ node .output/server/index.mjs 正在监听 http://localhost:3000 ``` 您现在可以将完全独立的 `.output` 目录部署到您选择的托管服务。 ### 环境变量 您可以使用以下环境变量自定义服务器行为: - `NITRO_PORT` 或 `PORT`(默认为 `3000`) - `NITRO_HOST` 或 `HOST` - `NITRO_UNIX_SOCKET` - 如果提供(一个指向所需套接字文件的路径),则服务将通过提供的 UNIX 套接字提供服务。 - `NITRO_SSL_CERT` 和 `NITRO_SSL_KEY` - 如果两者都存在,则服务器将在 HTTPS 模式下启动。在绝大多数情况下,这不应在生产中使用,Nitro 服务器应位于反向代理后,例如 nginx 或 Cloudflare,该代理终止 SSL。 - `NITRO_SHUTDOWN_DISABLED` - 当设置为 `'true'` 时,禁用优雅关闭功能。如果设置为 `'true'`,则将跳过优雅关闭以加速开发过程。默认为 `'false'`。 - `NITRO_SHUTDOWN_SIGNALS` - 允许您指定应处理哪些信号。每个信号应以空格分隔。默认为 `'SIGINT SIGTERM'`。 - `NITRO_SHUTDOWN_TIMEOUT` - 设置强制关闭发生前的时间(以毫秒为单位)。默认为 `'30000'` 毫秒。 - `NITRO_SHUTDOWN_FORCE` - 当设置为 true 时,在关闭过程结束时触发 `process.exit()`。如果设置为 `'false'`,进程将简单地让事件循环清理。默认为 `'true'`。 ## 集群模式 **预设:** `node_cluster` 为了更高的性能并利用多核处理,您可以使用集群预设。 ### 环境变量 除了来自 `node_server` 预设的环境变量,您还可以自定义行为: - `NITRO_CLUSTER_WORKERS`: 集群工作进程的数量(默认为可用 CPU 内核数量) ## 处理程序(高级) **预设:** `node` Nitro 还有一个更低级的预设,直接导出一个具有 `(req, res) => {}` 签名的函数,可用于中间件和自定义服务器。 当使用 Node 预设运行 `nitro build` 时,结果将是一个导出具有 `(req, res) => {}` 签名的函数的入口点。 **示例:** ```js import { createServer } from 'node:http' import { listener } from './.output/server' const server = createServer(listener) server.listen(8080) ```