我对请求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请求中没有任何消息。
我错过了什么吗?
答案 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功能。