传递给 handle 的 event 对象是同一个对象——一个 RequestEvent 实例——它被传递到 +server.js 文件中的API 路由、+page.server.js 文件中的表单操作以及 +page.server.js 和 +layout.server.js 文件中的 load 函数。
它包含许多有用的属性和方法,其中一些我们已经遇到过
cookies— Cookie APIfetch— 标准的 Fetch API,具有额外功能getClientAddress()— 获取客户端 IP 地址的函数isDataRequest— 如果浏览器在客户端导航期间请求页面的数据,则为true;如果直接请求页面/路由,则为falselocals— 用于放置任意数据的地方params— 路由参数request— Request 对象route— 一个对象,其id属性表示匹配的路由setHeaders(...)— 用于在响应中设置 HTTP 标头的函数url— 一个 URL 对象,表示当前请求
一个有用的模式是在 handle 中向 event.locals 添加一些数据,以便可以在后续的 load 函数中读取它
src/hooks.server
export async function handle({ event, resolve }) {
event.locals.answer = 42;
return await resolve(event);
}src/routes/+page.server
export function load(event) {
return {
message: `the answer is ${event.locals.answer}`
};
}上一页 下一页
1
2
3
4
5
<script>
let { data } = $props();</script>
<h1>{data.message}</h1>