undefined不是有效的uri或options对象。在expressjs

时间:2015-10-27 12:39:51

标签: javascript node.js express webpagetest

我正在使用expressjs,在运行webapagetest后我将字符串格式的url存储在变量中然后我在请求节点模块中使用此变量来从该url获取数据,但是我得到的是未定义的有效的uri或选项。这是我的javascript代码



 var WebPageTest = require('webpagetest');
    var wpt = new WebPageTest('url of private webpagetest instance server');

    wpt.runTest('https://google.com', function(err, data) {
        console.log(err || data);
        console.log(data.data.summaryCSV);
        sid = data.data.summaryCSV;
        console.log(typeof sid);

    });

    request(sid,function(error,response,body){
        console.log(body);




我在最后一行收到错误"请求"

感谢。

2 个答案:

答案 0 :(得分:0)

尝试这个:

var WebPageTest = require('webpagetest'); 
var wpt = new WebPageTest('server-url'); 
wpt.runTest('some url', function(err, data) {
    console.log(err || data); 
    console.log(data.data.summaryCSV); 
    console.log("GOING INTO REQUEST MODULE!!"); 
    request('data_url', function (error, response, body) { 
       if (error) { 
      console.log(error); 
      } 
      console.log(body); 
      var data = body;
    })
});

答案 1 :(得分:0)

您收到错误,因为runTest函数是异步操作,因此您不应该依赖于以下代码行中设置的值,因为您无法确定异步调用是否具有已经完成了。要实现您想要的目标,您可以:

  • 直接在回调函数中调用代码(如@Subburaj建议的那样),
  • 在回调中调用你自己的回调函数(在这种情况下,在函数中包装请求,并在里面调用它)
  • 使用像Bluebird这样的承诺库,然后您可以简单地使用then函数来调用您的请求