undefined 不是有效的 uri 或选项对象。在 expressjs 中
undefined is not a valid uri or options object. in expressjs
我正在使用 expressjs,在 运行 webapagetest 之后,我将字符串格式的 url 存储在一个变量中,然后我在请求节点模块中使用此变量从中获取数据url,但我得到 undefined 不是有效的 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);
我在最后一行“请求”出现错误
谢谢。
试试这个:
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;
})
});
你得到了错误,因为 runTest
函数是一个异步操作,所以你不应该依赖于下面代码行中设置的值,因为你不能确定,异步通话已经结束。要实现您想做的事情,您可以:
- 直接在回调函数中调用代码(正如@Subburaj 所建议的那样),
- 在回调内部调用您自己的回调函数(在这种情况下,将请求包装在一个函数中,然后在内部调用)
- 使用像 Bluebird 这样的 promise 库,然后您可以简单地使用
then
函数来调用您的请求
我正在使用 expressjs,在 运行 webapagetest 之后,我将字符串格式的 url 存储在一个变量中,然后我在请求节点模块中使用此变量从中获取数据url,但我得到 undefined 不是有效的 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);
我在最后一行“请求”出现错误
谢谢。
试试这个:
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;
})
});
你得到了错误,因为 runTest
函数是一个异步操作,所以你不应该依赖于下面代码行中设置的值,因为你不能确定,异步通话已经结束。要实现您想做的事情,您可以:
- 直接在回调函数中调用代码(正如@Subburaj 所建议的那样),
- 在回调内部调用您自己的回调函数(在这种情况下,将请求包装在一个函数中,然后在内部调用)
- 使用像 Bluebird 这样的 promise 库,然后您可以简单地使用
then
函数来调用您的请求