2012-10-22 21 views
0

节点脚本必须调用一个URL,并获取响应并使用响应的某个变量来调用下一个url。可能吗?Nodejs - 弗里斯比测试

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

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 

回答

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

非常感谢Max,这将解决我的问题。 – user1748253

+0

不幸的是,答案并没有告诉我如何使用frisby,我可以根据另一个测试的结果创建一个测试。 上面的例子使用“http”,我希望我能找到一个使用frisby做的例子。 –