關於 Web Method
1 分鐘
Wix 允許您為網站新增後端和前端程式碼。後端程式碼在伺服器上執行,而前端程式碼則在瀏覽器中執行。若要從前端呼叫後端程式碼,您可以使用稱為 Web Method 的特殊函式類型。Wix 會處理啟用此存取權所需的所有後端與前端通訊。本篇文章將說明 Web Method 的使用方法。
什麼是 Web Method?
Web Method 是用於匯出後端函式的包覆(Wrapper)。這些包覆不僅界定匯出的函式,還能為其設定權限。每當在前端呼叫該函式時,系統就會套用這些權限。Web Method 僅能在副檔名為
.web.js 的檔案中界定。您可以透過從
wix-web-module 模組匯入 webMethod 函式和 Permissions 枚舉來界定 Web Method。界定 Web Method 時,一律需要匯入這些內容。webMethod 函式接收 2 個引數:權限和函式。權限界定誰可以從前端呼叫該函式。Permissions 枚舉包含各種可能的權限。函式則是您想要匯出的後端函式。以下是在
.web.js 檔案中使用網頁方法包覆來界定後端函數的範例:1import {Permissions, webMethod} from "wix-web-module";
2
3export const multiply = webMethod(Permissions.Anyone, (a,b) => a * b);在此範例中,使用
webMethod 包覆界定 multiply 函式。Permissions.Anyone 引數表示任何人都可以從前端呼叫此函式。了解權限
後端界定函式時,即可界定 Web Method 的權限。一旦為函式界定權限,從前端呼叫該函式時都會套用該權限。權限共有 3 個選項:
任何人:任何網站訪客皆可從前端呼叫函式。SiteMember:僅限已登入的網站會員可從前端呼叫函式。管理員:僅限網站管理員可從前端呼叫函式。
以下是在
.web.js 檔案中界定各類權限函數的範例:1import {Permissions, webMethod} from "wix-web-module";
2
3// Anyone can call this function
4export const multiply = webMethod(Permissions.Anyone, (a,b) => a * b);
5
6// Only members can call this function
7export const add = webMethod(Permissions.SiteMember, (a,b) => a + b);
8
9// Only admins can call this function
10export const subtract = webMethod(Permissions.Admin, (a,b) => a - b);在此範例中,任何人都可以呼叫
multiply 函式,只有已登入的網站會員可以呼叫 add 函式,而只有網站管理員可以呼叫 subtract 函式。從前端程式碼呼叫後端函式
使用 Web Methods 界定後端函式後,即可將其匯入前端程式碼檔案並進行呼叫。請注意,所有匯入的後端函式皆為非同步。
以下是從前端呼叫後端
multiply 函式的範例:1import {multiply} from 'backend/myModule.web';
2
3$w.onReady(async function () {
4 multiply(5, 3).then((result) => {
5 console.log(result); // Logs 15
6 });
7});在此範例中,從後端模組匯入
multiply 函式,然後在前端呼叫。結果會記錄到主控台。
