我需要在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(路径),但这不起作用。
有关如何执行此操作的任何建议吗?
答案 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);
});