Adapters

Node.js

在 Node.js 上原生运行 h3 服务器。

为了在 Node.js 中启动 h3 应用程序,请使用 toNodeHandler 适配器将 h3 应用程序转换为 Node.js requestListener

用法

首先,创建一个 h3 应用程序:

app.mjs
import { createApp } from "h3";

export const app = createApp();

app.use(() => "Hello world!");

创建 Node.js 服务器入口:

server.mjs
import { createServer } from "node:http";
import { toNodeHandler } from "h3";
import { app } from "./app.mjs";

createServer(toNodeHandler(app)).listen(process.env.PORT || 3000);

现在,你可以在 Node.js 中原生运行你的 h3 应用程序:

terminal
node ./server.mjs

使用 listhen

另外,你可以使用 unjs/listhen。在这种方法中,你只需创建一个带有 defaultapp 导出的 app.mjs

运行以下命令以启动你的服务器:

npx --yes listhen ./app.ts

WebSocket 支持

Read more in crossws.unjs.io/adapters/node.
当使用 listhen 方法时,WebSocket 功能开箱即用!
import wsAdapter from "crossws/adapters/node";

const { handleUpgrade } = wsAdapter(app.websocket);

server.on("upgrade", handleUpgrade);