当前位置: 首页 > 面试题库 >

如何在节点JS的局部变量中存储GET请求的响应

施彬郁
2023-03-14
问题内容

我知道使用该request模块向URL发出GET请求的方法。最终,该代码仅在产生它的命令外壳中打印GET响应。

如何将这些GET响应存储在本地变量中,以便可以在程序中的其他地方使用它?

这是我使用的代码:

var request = require("request");
request("http://www.stackoverflow.com", function(error, response, body) {
    console.log(body);
});

问题答案:

最简单的方法(但也有陷阱-见下文)是body进入模块范围。

var request = require("request");
var body;


request("http://www.stackoverflow.com", function(error, response, data) {
    body = data;
});

但是,这可能会导致错误。例如,您可能倾向于console.log(body)在致电之后request()

var request = require("request");
var body;


request("http://www.stackoverflow.com", function(error, response, data) {
    body = data;
});

console.log(body); // THIS WILL NOT WORK!

由于request()异步,这将不起作用,因此它将body在回调中设置之前返回控制。

创建body事件发送器并订阅事件可能会更好地为您服务。

var request = require("request");
var EventEmitter = require("events").EventEmitter;
var body = new EventEmitter();


request("http://www.stackoverflow.com", function(error, response, data) {
    body.data = data;
    body.emit('update');
});

body.on('update', function () {
    console.log(body.data); // HOORAY! THIS WORKS!
});

另一个选择是切换到使用Promise。



 类似资料:
  • 剪辑过,我剪短了。 代码变量被赋值 首先需要用get请求触发php脚本,输出不应该保存 然后,当上面的请求完成后,将get请求发送到并将响应保存到一个变量, 对于https://flower.nyaizhel.ml/fun/carbon/shorturl.php?short&code=ii,它应该是6,请参阅url 我试着取,没有结果

  • 我正在用nodejs和MongoDB创建我的第一个API,我想创建一个类似“localhost:3050/user/name”的GET请求。所以我建立了这个: ...

  • 所以,我正在运行一个童子军服务器,为此,我制作了一个机器人。为了更好的组织,我们一直在努力获得每个人的真实姓名。机器人将要求他们的名字,他们将键入!命名为Travis_c。然后我希望它将他们的不一致用户名存储在一个变量中,并发送一条消息告诉我trullycool= ' ' 我有问题用户=message.author()我知道如果我想回复我做的事情message.reply但在我的情况下不会工作。

  • 我正在使用jQuery mobile和Spring MVC开发一个包含多页模板的移动应用程序。我有一个包含锚链接的jsp;每当我单击链接时,就会调用事件并执行jQuery函数。我从函数中的链接获得了一个id,并将其存储在jQuery变量中。现在我想重用jstltag中jQuery变量的值,该值在核心标记库中可用。如何使用该值?这是我的jsp:

  • 本文向大家介绍程序的局部变量存在于_ 中,全局变量存在于__中,动态申请数据存在于___ 中。相关面试题,主要包含被问及程序的局部变量存在于_ 中,全局变量存在于__中,动态申请数据存在于___ 中。时的应答技巧和注意事项,需要的朋友参考一下 程序的局部变量存在于栈(stack) 中,全局变量存在于静态数据区中,动态申请数据存在于堆(heap)中。

  • 问题内容: 我仍然是jQuery和ajax领域的新手,但是我有一个$ .ajax请求,执行GET来检索一些XML文件(〜6KB或更少),但是在用户花那个页面的时间内,XML内容应该不会/不会更改(此设计我无法更改,在我从其他地方读取XML文件时也无权更改它)。因此,我有一个全局变量将响应数据存储到该变量中,并且对该数据进行的所有后续查询都将在此变量上进行,因此不需要进行多个请求。 考虑到XML文件