Repolode
fastify

fastify/fastify-nextjs

为现有 Fastify 服务器提供 Next.js 与 React 服务端渲染支持的插件。

Star
557
Fork
63
未关闭 Issue
6
最近提交
3天前

这是什么?

@fastify/nextjs 是一个 Fastify 插件,用于在已有的 Fastify 服务器中渲染 Next.js 页面。它并不会用 Fastify 替换 Next.js 自带的 Web 服务器,而是在 Fastify 实例上暴露 `next` 路由接口,让指定路由交由 Next.js 渲染。

路由需要声明在 `after` 回调中,以便 Next.js 完成初始化。开发者可以直接渲染页面、在注册插件时传入自定义 Next.js 选项,也可以在自定义处理器中调用 `reply.nextRender` 或 `reply.nextRenderError`。默认会处理 `_next/*` 静态资源请求,如需自定义预处理可以关闭。

插件集成了 @fastify/under-pressure,可在服务器负载过高时返回错误,因为 React 服务端渲染会阻塞 Node.js 事件循环。此外,它还支持把其他 Fastify 插件的实例挂载到请求对象上供页面使用,并可在开发模式下调大大型 Next.js 项目的插件超时时间。

核心功能

  • 01在 Fastify 上暴露 `next` 路由接口,用于渲染 Next.js 页面。
  • 02支持自定义渲染处理器,并提供 `reply.nextRender` 与 `reply.nextRenderError` 辅助方法。
  • 03默认处理 `_next/*` 静态资源,也可通过选项关闭。
  • 04可选集成 under-pressure,根据负载实现熔断保护。
  • 05可将其他 Fastify 插件的实例挂载到请求对象上,供页面读取。

适用场景

  • 在现有 Fastify API 服务中加入服务端渲染的 React 页面。
  • 在同一个 Node.js 进程中同时提供 Next.js 前端与 Fastify 路由。
  • 通过基于健康指标的错误返回,保护承载 Next.js 渲染的 Fastify 服务器免于过载。

快速上手

  1. 1

    安装插件及 Next.js 和 React

    npm i @fastify/nextjs next react react-dom
  2. 2

    在 pages/hello.js 中创建页面文件

  3. 3

    注册插件,在 after 回调中调用 fastify.next('/hello'),然后监听 3000 端口

使用前须知

  • 插件需与 Next.js 一同安装,它用于在现有 Fastify 服务器中加入 Next.js 渲染,而非替代 Next.js 自身的 Web 服务器。
  • 大型 Next.js 项目在开发模式下可能超过 Fastify 默认 10 秒的插件超时,需要调大 pluginTimeout。

标签

常见问题

fastify-nextjs 是什么?
为现有 Fastify 服务器提供 Next.js 与 React 服务端渲染支持的插件。 @fastify/nextjs 是一个 Fastify 插件,用于在已有的 Fastify 服务器中渲染 Next.js 页面。它并不会用 Fastify 替换 Next.js 自带的 Web 服务器,而是在 Fastify 实例上暴露 `next` 路由接口,让指定路由交由 Next.js 渲染。
fastify-nextjs 可以免费使用吗?用的什么许可证?
fastify-nextjs 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
fastify-nextjs 还在维护吗?
活跃维护中。fastify-nextjs 最近一次提交是在 2026年11月4日。
fastify-nextjs 适合用来做什么?
在现有 Fastify API 服务中加入服务端渲染的 React 页面。 在同一个 Node.js 进程中同时提供 Next.js 前端与 Fastify 路由。 通过基于健康指标的错误返回,保护承载 Next.js 渲染的 Fastify 服务器免于过载。
fastify-nextjs 怎么安装和运行?
安装插件及 Next.js 和 React: npm i @fastify/nextjs next react react-dom 在 pages/hello.js 中创建页面文件 注册插件,在 after 回调中调用 fastify.next('/hello'),然后监听 3000 端口
在哪里获取 fastify-nextjs?
源代码和安装说明在 GitHub 上:https://github.com/fastify/fastify-nextjs

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目