[Alpha]{class="badge informative"}
forRequest (伺服器SDK)
forRequest方法傳回範圍為單一傳入要求的控制代碼。 針對伺服器處理的每個要求呼叫一次,然後在控制代碼上呼叫方法,例如sendEvent。 Web SDK中沒有此方法,因為每個瀏覽器頁面已提供單一訪客。
控制代碼由其自身的SDK執行個體支援,其設定與您傳遞至configure的選項相同。 如此一來,一個訪客的身分和同意永遠不會洩漏給另一個訪客的請求。 請參閱執行個體和要求,以取得每個處理常式與最上層執行個體共用的說明。
const visitor = alloy.forRequest({
request: req
});
await visitor.sendEvent({
xdm: {
eventType: "web.webpagedetails.pageViews",
identityMap: {
Email: [{ id: "visitor@example.com", primary: true }]
}
}
});
選項 options
forRequest方法接受具有下列屬性的選用物件:
屬性
類型
說明
request物件
傳入的要求。 任何具有
headers屬性的物件皆可運作,例如Node.js IncomingMessage、Express要求或Fetch API Request。 SDK將部分訪客的標頭轉送到Edge Network並讀取Referer標頭。 請參閱內容與轉送的標頭。cookie物件
適用於此訪客的Cookie服務。 SDK會透過讀取和寫入訪客的身分和同意。 如果省略,控制代碼會使用空的記憶體內部存放區,而訪客在每個要求上都會獲得新的ECID。 請參閱平台服務。
network, runtime, legacy, globals物件或函式
控制代碼絕不會重複使用您傳遞至createInstance的cookie或storage服務,因為這些服務包含訪客資料。 請改為針對每個請求將其傳遞至forRequest。
傳回值 return
與其他方法不同,forRequest不會傳回Promise。 它會立即傳回控制代碼。 控制代碼有以下方法,這些方法的運作方式與在頂層執行個體上相同:
控制代碼沒有configure或forRequest方法,因為它已經設定。
為每個請求建立一個新的控制代碼。 請勿在請求間重複使用控點,或在訪客間共用控點。
錯誤 errors
如果您在configure解析之前呼叫它,或如果configure拒絕,forRequest會擲回錯誤:
forRequest() can only be called after configure() has resolved.
若要避免此錯誤,請在伺服器開始接受要求之前,等待configure解決。
recommendation-more-help
experience-platform-help-collection