我需要暴露一個 .svelte 組件,它通過 post 方法接收資料,以便外部服務可以使用它,并且接收到的資料可以顯示為已接收
// test.svelte
<script>
let name="";
let age="";
let gender ="";
export async function post({request}){
const body = await request.json();
console.log(body);
name = body.name;
age = body.age;
gender = body.gender;
return {
body:JSON.stringify({body})
}
});
</script>
<form>
<div>
<p>{name} {age} {gender}</p>
</div>
</form>
看這張圖可能會更好理解
uj5u.com熱心網友回復:
*.svelte 檔案不直接處理 POST 請求。
<script>您撰寫的代碼在 Svelte 組件的標簽內不起作用。Post 資料在前端不可用。
但是,如果您使用的是最新的 SvelteKit 并且托管的是非靜態版本。
(例如使用@sveltejs/adapter-node)
您可以使用影子端點功能:
<!-- src/routes/test.svelte -->
<script>
export let name;
</script>
<h1>{name}</h1>
// src/routes/test.js
export async function post({ request }) {
const data = await request.json();
return {
body: {
name: data.name
}
}
};
當您創建具有相同檔案名的端點時,發布請求由端點(后端)處理,如果請求包含Accept: text/htmlorAccept: */*標頭,則服務器將使用正文中的值作為道具回應 SSR 頁面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/433707.html
