http.get()方法和var request = require('request')有什么区别
我是新来的节点JS,在learnyounode的nodeJS练习no.8中,我的解决scheme产生相同的require结果。我很困惑什么时候使用http.get和Request
目标 :编写一个执行HTTP GET请求的程序给你提供的URL
作为第一个命令行参数。 从服务器收集所有数据(不是
只是第一个“数据”事件),然后写两行到控制台
(标准输出)。
你写的第一行应该只是一个表示数字的整数
从服务器收到的字符。 第二行应该包含
完成服务器发送的string。
官方解决scheme
var http = require('http') var bl = require('bl') http.get(process.argv[2], function (response) { response.pipe(bl(function (err, data) { if (err) return console.error(err) data = data.toString() console.log(data.length) console.log(data) })) })
我的解决scheme
var request=require('request') request(process.argv[2],function(err,response,body){ console.log(body.length); console.log(body); })
从nodeJS文档 :
由于大多数请求是没有body的GET请求,Node.js提供了这种方便的方法。 这个方法和http.request()之间的唯一区别是它将方法设置为GET并自动调用req.end()。 请注意,由于http.ClientRequest部分中陈述的原因,必须在callback中使用响应数据。
那么,究竟是什么意思呢,就是你可以毫无问题地做到这一点。 但是request
不是节点本身附带的模块,而是开发人员更容易使http请求更容易的模块。 所以我在这里猜测,你正在学习NodeJS,而不是使用第三方应该是要走的路。
我不熟悉请求,但它似乎只是一个包装标准库function的npm包 。 你可以同时使用,但我会build议阅读http.get和请求的文档,如果你发现标准库函数(http.get)足够你的需求,我不明白你应该使用请求包的原因。
- HTTP响应头中'Allow'和'Access-Control-Allow-Methods'之间的区别?
- 与postman rest客户端相比,nodejs / curl http请求速度较慢
- Socket使用Node HTTP请求从GitHub API挂起错误
- 将graphics魔术输出的图像转换为无base64编码的响应
- Nodejs从一个nodejs服务器发送文件到另一个
- AngularJS:http链调用和NodeJS的问题:在多个http调用中使用variables的问题
- 使用nodeJS的自定义path代理WebSockets和HTTP到单独的NodeJS应用程序?
- 如何正确closuresNode.js TCP服务器?
- Node.js如何处理连接?