返回介绍

路由 Routing

发布于 2024-04-15 22:23:13 字数 2509 浏览 0 评论 0 收藏 0

Nitro 支持文件系统路由以及定义路由规则以获得最大的灵活性和性能。

基于文件的路由

Nitro 支持 API 路由的基于文件的路由。

api/routes/ 目录中的处理程序文件将自动映射到 unjs/h3 路由。

由于像 Vercel 这样的提供商使用顶级 api/ 目录作为一项功能,Nitro 也支持 routes/api/ 来创建 API 路由。

md
api/
  test.ts      <-- /api/test
routes/
  hello.ts     <-- /hello
nitro.config.ts

如果您使用的是 Nuxt,请将 api/routes/ 移到 server/ 目录中。

Simple route

Nitro 允许您在配置的顶层添加逻辑,这对于重定向、代理、缓存和向路由添加标头很有用。

它是从路由模式(遵循 unjs/radix3)到路由选项的映射。

当设置了 cache 选项时,匹配模式的处理程序将自动用 defineCachedEventHandler 包装。

查看 Cache API 了解所有可用的缓存选项。

swr: true|number is shortcut for cache: { swr: true, maxAge: number }

Example:

nitro.config.ts
import { defineNitroConfig } from 'nitropack/config'

export default defineNitroConfig({
  routeRules: {
    '/blog/**': { swr: true },
    '/blog/**': { swr: 600 },
    '/blog/**': { static: true },
    '/blog/**': { cache: { /* cache options*/ } },
    '/assets/**': { headers: { 'cache-control': 's-maxage=0' } },
    '/api/v1/**': { cors: true, headers: { 'access-control-allow-methods': 'GET' } },
    '/old-page': { redirect: '/new-page' },
    '/proxy/example': { proxy: 'https://example.com' },
    '/proxy/**': { proxy: '/api/**' },
  }
})
nuxt.config.ts
export default defineNuxtConfig({
  routeRules: {
    '/blog/**': { swr: true },
    '/blog/**': { swr: 600 },
    '/blog/**': { static: true },
    '/blog/**': { cache: { /* cache options*/ } },
    '/assets/**': { headers: { 'cache-control': 's-maxage=0' } },
    '/api/v1/**': { cors: true, headers: { 'access-control-allow-methods': 'GET' } },
    '/old-page': { redirect: '/new-page' },
    '/proxy/example': { proxy: 'https://example.com' },
    '/proxy/**': { proxy: '/api/**' },
  }
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文