传递给 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
;如果直接请求页面/路由,则为false
locals
— 用于放置任意数据的地方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>