0

节点脚本必须调用一个 URL 并获取响应并使用响应的某个变量来调用下一个 url。是否可以?

在下面的示例中,我在其他脚本中使用令牌。

var http = require('http');
var options = {
    host: 'url' ,
    path: '/path',
    method: 'POST'
};
var req = http.request(options, function(res) {
    token="hi"; // to be populated by res
});
req.end();
exports.token = token
4

1 回答 1

0

我认为您正在尝试token在它存在之前进行导出。当您分配token = "hi"时,这发生http 请求完成并且您收到响应之后。你想要做的是export一个带有回调的函数,它从 url 返回你的数据。

var http = require('http');
var options = {
    host: 'url' ,
    path: '/path',
    method: 'POST'
};
exports.getToken = function (callback) {
    http.request(options, function(res) {
        callback(res);
    });
};

然后在您的另一个模块中,您将不得不调用getToken传递给它的回调函数的函数。

//I assume the above file is called tokenFinder.js
var tokenFinder = require('./tokenFinder');
var token;
tokenFinder.getToken(function (data) {
    token = data;
});
于 2012-10-22T20:03:39.380 回答