Nodejs - Frisby测试

时间:2012-10-22 15:46:58

标签: node.js

节点脚本必须调用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

1 个答案:

答案 0 :(得分:0)

我认为你试图在它存在之前导出token。当您分配token = "hi"时,之后发生http请求完成并获得响应。你要做的是export一个带回调的函数,它从网址返回你的数据。

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;
});