Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NodeJS中,如何将变量传递给http.request回调?_Javascript_Node.js_Express_Httprequest - Fatal编程技术网

Javascript 在NodeJS中,如何将变量传递给http.request回调?

Javascript 在NodeJS中,如何将变量传递给http.request回调?,javascript,node.js,express,httprequest,Javascript,Node.js,Express,Httprequest,我调用http.request().end(),需要向回调函数传递一个变量 我该怎么做 在我的情况下,用户访问服务器,服务器向我们的API发送HTTP请求,然后服务器需要使用HTTP请求返回的信息响应该用户。如果不使用全局变量,我想不出一种方法来做到这一点,这将是一个问题,因为如果两个人同时这样做,两条消息将发送给同一个用户 不知道这会有什么帮助,但我想做的是 callback = function(response){ //... respondToUser(userId);

我调用http.request().end(),需要向回调函数传递一个变量

我该怎么做

在我的情况下,用户访问服务器,服务器向我们的API发送HTTP请求,然后服务器需要使用HTTP请求返回的信息响应该用户。如果不使用全局变量,我想不出一种方法来做到这一点,这将是一个问题,因为如果两个人同时这样做,两条消息将发送给同一个用户

不知道这会有什么帮助,但我想做的是

callback = function(response){
    //...
    respondToUser(userId);
}

function doStuff(userId){
    http.request({host:'www.google.com'}, callback).end();
}
它被称为“闭包”,在这里,您将保持您正在编写的函数的上下文,如下所示

function doStuff(userId){
    var callback = function(response){
        //...
        respondToUser(userId);
    }

    http.request({host:'www.google.com'}, callback).end();
}

“如果不使用全局变量,我想不出一种方法来实现这一点……”不需要全局变量,只需要您的
请求
回调结束。如果你展示你的代码,我们可以帮助你。如果你不使用匿名函数作为回调函数,你应该能够轻松地传递你想要的。我添加了一个粗略的例子,说明我是如何尝试使用它的。也许我从根本上误解了一些东西,如果是的话,我很抱歉,我是node.jsI的新手。我考虑过这一点,但我有几个不同的函数需要执行这种行为,多次复制粘贴一百行解析代码可能不是一个很好的解决方案。如果这是唯一的解决方案,我想我可能可以组合所有这些函数。您可能已经以一种方式组织了您的代码,使其能够在过程编程语言(如Java或C++)中工作——您用函数式语言(如JavaScript)组织代码的方式非常不同。是的,您可能是对的。我将所有函数重写为一个更复杂的函数,其中包含回调函数,因此感谢您的回答