2

我需要在我的 node.js 应用程序中触发一个请求。我的应用程序有一条路线,当它运行时,我试图点击一个动态构建的 url。所以我只需要触发一个 REST API 调用,比如:

"https://www.domainname.com/sometext/"+ var1 +"/someothertext"

所以我尝试了这个:

var options = {
    host: 'www.domainname.com',
    port: 80,
    path: '/1.0/'+var1,
    method: 'GET'
};

//  trigger request 
request(options, function(err,response,body) {
.......
});

当我运行这个我得到这个错误: options.uri is a required argument

所以,我的目标是触发命中动态构建的 url 的请求。如果我有一个静态 url,我可以插入请求,它会正常工作。

事实上,我试图这样做:

request("https://www.domainname.com/1.0/456", function(err,response,body) {
.......
});

这很好用。

但是我正在尝试使用 var1 动态构建 url(路径),但这不起作用。

关于如何做到这一点的任何建议?

4

2 回答 2

4

您需要在作为第一个参数传递给request函数的选项中使用 URL 或 URI

request("https://www.domainname.com/1.0/456",function(err,response,body) { 不会失败的原因是因为您提供了 url 作为第一个参数

因此,将您的options对象更改为

var options = {
    url: 'https://www.domainname.com/sometext/'+ var1,
    port: 80,
    method: 'GET'
};

您可以尝试在var1like 中修剪值var1 = var1.replace(/^\s*|\s*$/g, '')

那应该删除空间。

于 2012-08-27T06:54:32.057 回答
0

因为options请求所采用的参数没有被赋予正确的格式化对象。

您收到的错误是因为您需要发送 aurl or uri作为选项。这可以在这里澄清:

https://github.com/request/request

以下应该做你想要的:

所以我尝试了这个:

var options = {
    url: "https://www.domainname.com/sometext/"+ var1 +"/someothertext"
    method: 'GET'
};

//  trigger request 
request(options, function(err,response,body) {
  console.log(response.statusCode);
});
于 2012-08-27T06:48:28.937 回答