跳到主要内容

传递给 handleevent 对象是同一个对象——一个 RequestEvent 实例——它被传递到 +server.js 文件中的API 路由+page.server.js 文件中的表单操作以及 +page.server.js+layout.server.js 文件中的 load 函数。

它包含许多有用的属性和方法,其中一些我们已经遇到过

  • cookiesCookie API
  • fetch — 标准的 Fetch API,具有额外功能
  • getClientAddress() — 获取客户端 IP 地址的函数
  • isDataRequest — 如果浏览器在客户端导航期间请求页面的数据,则为 true;如果直接请求页面/路由,则为 false
  • locals — 用于放置任意数据的地方
  • params — 路由参数
  • requestRequest 对象
  • 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}`
	};
}

在 GitHub 上编辑此页面

上一页 下一页
1
2
3
4
5
<script>
	let { data } = $props();
</script>
 
<h1>{data.message}</h1>