【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索

创建HTTP请求使现代编程说话的核心功能之一,也是很多法度榜样员在接触到新的开辟情况时最先碰到的技巧之一。在Node.js中有相当多的解决筹划,个中有说话内置功能,也有开源社区供献的开辟库。下面咱们来看一下比较风行的几种方法。
在本文的案例中,我们将应用NASA供给的“每日太空照片API”作为交淮竽暌姑的JSON API,
因为太空是有史以来最酷的器械。

HTTP - 标准库
起首是标准库中默认的HTTP模块。这个模块无需安装依附外部即可应用,做到了真正的即插即竽暌姑。缺点是与其他解决筹划比拟,用起来不是那么竽暌寡好。
下面的代码将向NASA的API发送一个GET请求,并输出当天的天文┞氛片的URL,以及它的注解:
- const https = require('https');
- https.get('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY', (resp) => {
- let data = '';
- // A chunk of data has been recieved.
- resp.on('data', (chunk) => {
- data += chunk;
- });
- // The whole response has been received. Print out the result.
- resp.on('end', () => {
- console.log(JSON.parse(data).explanation);
- });
- }).on("error", (err) => {
- console.log("Error: " + err.message);
- });
HTTP和HTTPS模块供给的大年夜多半功能是相当有限的。你须要以区块为单位接收响应数据,而不是只供给一个回调函数,以便在收到所稀有据后就急速履行。如不雅它是JSON格局你还须要进论述动解析。尽督工作量不大年夜,然则它仍然会带来一些不须要的操作。
另一个麻烦是,HTTP和HTTPS协定分属两个模块,是以如不雅我们应用的API是经由过程HTTPS协定进行通信,则须要HTTPS模块。
如不雅你不想向代码库中添加太多的依附项或欲望应用其底层的功能, 那么可能须要花费更多的精力来获取所需的数据, 尽管如斯,然则它仍然是一个很好的对象。
Request是一个简化的http客户端,它和Python的request库很像。这个库比默认的http 模块更好用,多年来被开源社区作为开辟首选。
自负年夜我开端应用Node.js就一向在用,他对快速完成开辟义务很有赞助。与http 模块不合的是,你必须应用npm来安装它。
在终端下进入到你想要代码被下载的目次中,运行以下敕令:
- npm install request@2.81.0
可以看到,不须要写太多代码就能完成前面的功能:
如不雅你想要一个不像Request那样痴肥的轻量级的看维应用Got就对了。
- const request = require('request');
- request('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY', { json: true }, (err, res, body) => {
- if (err) { return console.log(err); }
- console.log(body.url);
- console.log(body.explanation);
推荐阅读
【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索 哪里有榨取,哪里就有对抗身为常识产权圈里的专利人,笔者钦佩开源情怀,并曾写道:即使专利人也有专利情>>>详细阅读
本文标题:深入解析Node.js中5种发起HTTP请求的方法
地址:http://www.17bianji.com/lsqh/36783.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示