Node请求的简单使用无效

时间:2017-12-04 15:40:59

标签: node.js request

我对请求lib(https://www.npmjs.com/package/request)使用Node应用程序。

这个简单的例子不起作用:

console.log(' BEGIN ---- ');
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.
});
console.log('END ---- ');

我的控制台中只有 BEGIN ---- END ---- 消息,但get请求中没有任何消息。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

Nodejs表现为异步,这意味着当您运行脚本请求时需要一些时间来从提供的链接获取数据,但是完成此任务需要一些时间,因此其他代码不会等待它完成。

您可以使用回调来等待结果。下面的代码是解决您问题的简单方法。



const request = require('request')


function req(callback){
    console.log(' BEGIN ---- ');
    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.
      callback()
    }); 
}

req(function(){
    console.log('END ---- ');
})




但是为了更清晰易读的代码,你必须学会​​在nodejs中使用promises或async / await功能。