无需在所有路由中导入的全局 nextjs 中间件
A global nextjs middleware without need for import in all the routes
TLDR;
nextjs 的中间件,例如 express
,我只定义一次,它会自动应用于我的所有路由
我想要像 express
中那样的中间件样式.好吧,我需要类似于 NextJs
的东西
这些是我试用和使用了一段时间的
1:使用高阶组件(HOC):
我不喜欢这种方法,因为有这些缺点
使用 HOC 将禁用 快速刷新 功能,这真是美好的未来 More Info Here
我必须在每个 api 路由文件中导入我的中间件,这真的不是一件有趣的事情,并且将你的 api 文件包装在一个函数中并不是一件值得记住的事情一直
2:使用next-connect
由于这些缺点,我不喜欢使用这个包
- nextjs 处理 api 路由的方式看起来更自然,因为我使用 nextjs 我想仍然使用 nextjs 方式来处理我的路由。不是完全不同的风格只是为了一个中间件
- 与
HOC
相同我不喜欢在每个 api 文件中导入 nc
和 my-middleware
为什么不使用像 express 这样的自定义服务器呢?问题是,当我使用 nextjs 时,我只想使用 nextjs,同时使用自定义服务器将失去 nextjs 的许多美好未来,这也是我使用 nextjs
的部分原因
您可以实施 _app.tsx
,这将 运行 所有页面,但它也有一些缺点,例如禁用自动静态生成。
另一种选择是使用 express
本身实现自定义服务器,如 this example
所示
TLDR;
nextjs 的中间件,例如 express
,我只定义一次,它会自动应用于我的所有路由
我想要像 express
中那样的中间件样式.好吧,我需要类似于 NextJs
这些是我试用和使用了一段时间的
1:使用高阶组件(HOC):
我不喜欢这种方法,因为有这些缺点
使用 HOC 将禁用 快速刷新 功能,这真是美好的未来 More Info Here
我必须在每个 api 路由文件中导入我的中间件,这真的不是一件有趣的事情,并且将你的 api 文件包装在一个函数中并不是一件值得记住的事情一直
2:使用next-connect
由于这些缺点,我不喜欢使用这个包
- nextjs 处理 api 路由的方式看起来更自然,因为我使用 nextjs 我想仍然使用 nextjs 方式来处理我的路由。不是完全不同的风格只是为了一个中间件
- 与
HOC
相同我不喜欢在每个 api 文件中导入nc
和my-middleware
为什么不使用像 express 这样的自定义服务器呢?问题是,当我使用 nextjs 时,我只想使用 nextjs,同时使用自定义服务器将失去 nextjs 的许多美好未来,这也是我使用 nextjs
的部分原因您可以实施 _app.tsx
,这将 运行 所有页面,但它也有一些缺点,例如禁用自动静态生成。
另一种选择是使用 express
本身实现自定义服务器,如 this example