Qwik 插件
Qwik 插件,命名为 plugin.ts 或 plugin@<name>.ts,在根布局执行之前处理传入请求,并位于 src/routes 目录中。这些插件中的请求处理程序,如 onRequest、onGet、onPost,在 server$ 函数之前调用。对于多个插件,plugin.ts 处理程序首先执行,然后按字母顺序执行 plugin@<name>.ts 处理程序。中间件函数应在 plugin.ts 中定义,以确保对所有请求执行。
plugin.ts 文件的执行顺序
如果存在 plugin.ts 文件,并且它导出了请求处理程序,则它们首先执行。
然后,按文件名字母顺序执行来自 plugin@<name>.ts 文件的导出请求处理程序。例如,来自 [email protected] 的 onGet 在来自 [email protected] 的 onGet 之前执行,因为 auth 在字母顺序上位于 security 之前。
最后,如果存在 server$ 函数,则它最后执行。
中间件和 server$
使用 server$ 时,了解 中间件函数 的执行方式很重要。在 layout 文件中定义的中间件函数不会为 server$ 请求运行。这可能会导致混淆,尤其是在开发人员期望某些中间件对页面请求和 server$ 请求都执行时。
为了确保中间件函数对这两种类型的请求都运行,它应该在 plugin.ts 文件中定义。这确保了中间件对所有传入请求(无论它们是普通页面请求还是 server$ 请求)都一致地执行。