请求可以从以下任一层被拦截并终止(可带响应,也可不带响应),顺序如下:
Nitro 配置中定义的匹配路由规则将被执行。请注意,大多数路由规则可以修改响应而不终止(例如,添加一个响应头)。
import { defineNitroConfig } from "nitro/config";
export default defineNitroConfig({
routeRules: {
'/**': { headers: { 'x-nitro': 'first' } }
}
})
定义在 middleware/ 目录下的任何全局中间件都会运行:
import { defineHandler } from "nitro/h3";
export default defineHandler((event) => {
event.context.info = { name: "Nitro" };
});
此阶段,Nitro 会检查 routes/ 文件夹中定义的路由以匹配传入请求。
export default (event) => ({ world: true })
如果定义了服务器入口处理器,则将运行:
import { defineHandler } from "nitro/h3";
export default defineHandler((event) => {
if (event.path === "/") {
return "主页";
}
});
如果没有匹配路由,Nitro 会寻找渲染器处理器(已定义或自动检测)来处理请求。