这是服务器的主入口点。它用于每个服务器,允许你以无服务器模式运行或作为长期运行的服务器运行。
如果你想更好地了解如何实现自己的 Wrapper,最简单的方法是查看现有的 包含的 Wrapper (opens in a new tab) 之一。
有几件事需要注意:
- 如果你想使用 streaming(用于 next 的
noderuntime),你需要创建一个StreamCreator并将其传递给handler。你可以在 node (opens in a new tab) 或 aws-lambda-streaming (opens in a new tab) wrapper 中找到一些示例。 - 如果你不使用 streaming(如默认的
aws-lambdawrapper 中),你可能仍然需要向handler提供一个假的StreamCreator,以避免 Node 本身的一个奇怪问题(见 这里 (opens in a new tab) 获取示例和更详细的解释)。 - 如果你使用 Next 的
edgeruntime(无论是用于外部 middleware 还是用于edge路由或页面),你根本不需要StreamCreator。 - 如果你处于支持
waitUntil的无服务器环境中,你应该将其传递给 handler,就像在 cloudflare-edge wrapper (opens in a new tab) 中所做的那样。这可能不是必需的,具体取决于你运行它的位置(例如aws-lambda-streaming或nodewrapper 不需要它。)
包含的 Wrappers
aws-lambda
aws-lambda Wrapper 是 AWS Lambda 的默认 wrapper。如果你在配置中没有提供任何 Wrapper,则默认使用它。
特性
- Streaming
- 对
waitUntil的适当支持
aws-lambda-streaming
aws-lambda-streaming Wrapper 是一个允许你在 AWS Lambda 中使用 streaming 的 wrapper。必须为此 lambda 启用 streaming。
特性
- Streaming
- 对
waitUntil的适当支持
cloudflare-edge
cloudflare-edge Wrapper 是 Cloudflare Workers 的 wrapper。它应该用于外部 middleware 和 Next 的 edge runtime。
特性
- Streaming
- 对
waitUntil的适当支持
cloudflare-node
cloudflare-node Wrapper 是 Cloudflare Workers 的 wrapper。它应该仅与 Next 的 node runtime 一起使用,并且如果你使用 @opennextjs/cloudflare。
特性
- Streaming
- 对
waitUntil的适当支持
node
node Wrapper 是经典 Node.js Server 的 wrapper。这是一个长期运行的服务器。
特性
- Streaming
- 对
waitUntil的适当支持
express-dev
express-dev Wrapper 是经典 Express 服务器的 wrapper。它是一个长期运行的进程,仅应用于开发目的。
特性
- Streaming
- 对
waitUntil的适当支持
dummy
dummy Wrapper 是一个虚拟实现,它只会将 event 和 StreamCreator 转发给 handler。
特性
- Streaming
- 对
waitUntil的适当支持