[Alpha]{class="badge informative"}
forRequest (Server SDK)
forRequest メソッドは、1つの受信リクエストに対してスコープが設定されたハンドルを返します。 サーバーが処理するリクエストごとに1回呼び出してから、ハンドルのsendEventなどのメソッドを呼び出します。 この方法は、Web SDKには存在しません。各ブラウザーページは、既に1人の訪問者に対してサービスを提供しているからです。
ハンドルは、独自のSDK インスタンスによってサポートされ、configureに渡したのと同じオプションで設定されます。 これにより、ある訪問者のIDと同意が、他の訪問者のリクエストに反映されることはありません。 各ハンドルが上位レベルのインスタンスと共有する内容については、 インスタンスとリクエスト を参照してください。
const visitor = alloy.forRequest({
request: req
});
await visitor.sendEvent({
xdm: {
eventType: "web.webpagedetails.pageViews",
identityMap: {
Email: [{ id: "visitor@example.com", primary: true }]
}
}
});
オプション options
forRequest メソッドは、次のプロパティを持つオプションのオブジェクトを受け入れます。
requestIncomingMessage、Express リクエスト、Fetch API Requestなど、headers プロパティを持つオブジェクトはすべて機能します。 SDKは、訪問者のヘッダーの一部をEdge Networkに転送し、Referer ヘッダーを読み取ります。 コンテキストと転送ヘッダーを参照してください。cookienetwork, runtime, legacy, globalscreateInstanceに渡したサービスの置き換え。 networkをネットワークサービスを返す関数として渡し、その他をオブジェクトとして渡します。 Platform サービス を参照してください。createInstanceに渡されたcookieまたはstorage サービスは訪問者データを保持しているため、ハンドルは再利用しません。 代わりに、リクエストごとにforRequestに渡してください。
戻り値 return
他のメソッドとは異なり、forRequestはプロミスを返しません。 すぐにハンドルを返します。 ハンドルには次のメソッドがあり、トップレベルインスタンスと同じように機能します。
ハンドルにはconfigureまたはforRequest個のメソッドがありません。既に設定されています。
リクエストごとに新しいハンドルを作成します。 リクエストをまたいでハンドルを再利用したり、訪問者の間で共有したりしないでください。
エラー errors
forRequestは、configureが解決する前に呼び出した場合、またはconfigureが拒否した場合にエラーをスローします。
forRequest() can only be called after configure() has resolved.
このエラーを回避するには、サーバーがリクエストの受け入れを開始する前に、configureが解決するのを待ちます。