node.js的HTTPS请求?

时间:2012-08-27 06:33:01

标签: javascript node.js express

我需要在node.js应用中触发请求。我的应用程序有一个路由,当它运行时,我试图找到一个动态构建的网址。所以我需要的是触发一个类似的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的请求。如果我有一个静态网址,我可以插入请求,它会正常工作。

事实上,我试图这样做:

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

这很好。

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

有关如何执行此操作的任何建议吗?

2 个答案:

答案 0 :(得分:4)

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

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

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

那应该删除空间。

答案 1 :(得分:0)

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

您收到的错误是因为您需要发送url 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);
});