傳遞到 handle
中的 event
物件是相同的物件 — 一個 RequestEvent
的實例 — 它會傳遞到 +server.js
檔案中的 API 路由、+page.server.js
檔案中的 表單動作,以及 +page.server.js
和 +layout.server.js
中的 load
函式。
它包含許多有用的屬性和方法,其中一些我們已經遇到過
cookies
— cookies 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>