跳到主要內容

傳遞到 handle 中的 event 物件是相同的物件 — 一個 RequestEvent 的實例 — 它會傳遞到 +server.js 檔案中的 API 路由+page.server.js 檔案中的 表單動作,以及 +page.server.js+layout.server.js 中的 load 函式。

它包含許多有用的屬性和方法,其中一些我們已經遇到過

  • cookiescookies 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>