[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请求或获取API Request。 SDK将一些访客的标头转发到Edge Network并读取Referer标头。 请参阅上下文和转发的标头。network, runtime, legacy, globals对象或函数
该句柄从不重用您传递给createInstance的cookie或storage服务,因为这些服务包含访客数据。 请为每个请求将它们传递给forRequest。
返回值 return
与其他方法不同,forRequest不返回承诺。 它立即返回一个句柄。 该句柄具有以下方法,这些方法的工作方式与在顶级实例上相同:
该句柄没有configure或forRequest方法,因为它已配置。
为每个请求创建一个新句柄。 请勿在请求间重用句柄,也不要在访客间共享句柄。
错误 errors
如果您在configure解析之前调用它,或者configure被拒绝,forRequest会引发错误:
forRequest() can only be called after configure() has resolved.
要避免此错误,请在服务器开始接受请求之前等待configure解决。
recommendation-more-help
experience-platform-help-collection