我们现在正在努力使用NodeJS,因为我们不希望通过大量回调传递一些基于请求的通用数据。我们在一个远程方法中有多个异步调用,更改,更新,我们需要能够在每个步骤中提取sessionId和customerId,而不将它们作为参数传递给每个函数。以下是我们的尝试:
是否有一种很好的方法可以处理基于请求的上下文,您可以在应用程序的任何位置使用,或者您仍然需要在任何地方传递一些变量?
答案 0 :(得分:0)
Node.js最适合实现无状态服务器。我不知道你的代码库和架构。但我想你需要使用像
这样的持久性存储Redis或Memcached或Firebase(服务)
每个会话都有一个令牌。并使用此标记从持久性存储中获取对象。在实现无状态服务器时,这是一种非常标准的方法。 Firebase提供了实时更新的附加优势,甚至可以在需要时完全绕过服务器。
您可能需要显示一些代码和设计才能获得更好的答案。
答案 1 :(得分:-1)
您可以使用像Ex:
这样的javascript功能var topFunction={
firstFunction:function(){
console.log(id);
------//work you want to do
},
secondFunction:function(){
console.log(id);
---//work you want to do
}
}
function test(){
var arr=[2,3,4,5,6,7];
topFunction.id=10;
async.map(arr,topFunction.firstFunction.bind(topFunction),function(err,result){
})
每次在异步调用中都有相同的id,这是使用异步调用的最佳方式。你不需要一次又一次地发送id。你可以在请求中使用javascript的这个特性作为上下文。每个请求的id值都不同