谁能解释node.js中的请求库?

时间:2018-08-14 04:49:54

标签: javascript node.js request

 var request = require('request');
 request('http://www.google.com', function(error, response, body) {
     console.log('error:', error); // Print the error if one occurred
     console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
     console.log('body:', body); // Print the HTML for the Google homepage.
 })
  1. 我很困惑我们是否可以通过说response.error来重写,而我们的命名约定必须相同才能进行更改

  2. 此处的功能如何工作。如何知道将第一个参数作为错误传递,将第二个参数作为响应传递

2 个答案:

答案 0 :(得分:2)

请求期望使用某个功能签名。在这种情况下,具有参数errorresponsebody的函数。这些功能通常称为callback功能。

请求完成后,request库将调用您设计为其回调函数的函数。

基本上request会强制您使用此函数签名,而您对此无能为力。

如今,图书馆使用promises或使用async/await更为普遍。这提供了一种更灵活的方式来对所调用函数的响应进行操作。

答案 1 :(得分:0)

 request('http://www.google.com', function(error, response, body) {

})

请求作为返回响应和正文的函数。
function(error,response,body){}回调。这意味着request()完成此操作的时间function(error,response,body){} 将要运行。

第一个参数总是错误是回调的语法。如果以后遇到回调,则会注意到每个回调都将第一个参数作为错误。这是运行函数时导致的错误,此处的函数是request()。如果在执行request()时没有发生错误,则it(error)可以为null 。

然后出现错误,响应和正文,这是request()函数的输出。

您可以更改并保留示例的名称

1 function(error,response,body){}
2 function(e,resp,rbody){}
3 function(response,error,body){}
4 function(response,body,error){}

这些不是导致错误的原因,都是相同的语句,而是访问

中的错误
1 function(error,response,body){console.log(error)}
2 function(e,resp,rbody){console.log(e)}
3 function(response,error,body){console.log(response)} 
4 function(response,error,body){console.log(response)}

我建议您阅读https://www.tutorialspoint.com/nodejs/nodejs_callbacks_concept.htm