【发布时间】:2018-01-24 14:09:22
【问题描述】:
我是node JS的新手,在learnyounode的nodeJS练习8中,我的解决方案产生了相同的require结果。我对何时使用http.get和Request感到困惑
目标:
编写一个程序,对提供给您的 URL 执行 HTTP GET 请求
作为第一个命令行参数。从服务器收集所有数据(不
只是第一个“数据”事件),然后将两行写入控制台
(标准输出)。
你写的第一行应该只是一个代表数字的整数
从服务器接收到的字符数。第二行应包含
由服务器发送的完整字符串。
官方解决方案
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)
}))
})
我的解决方案
var request=require('request')
request(process.argv[2],function(err,response,body){
console.log(body.length);
console.log(body);
})
【问题讨论】:
-
市面上有很多http工具,request只是另一种,http是在node.js中打包的,另一种是例如Axios
-
request是第三方库,内置http模块。
-
是的,所以在某些情况下使用 request 代替 http.get() 是个好习惯?
-
我不会说这是一个好的做法...但是如果它确实可以简化您的开发。问题是你正在学习 NodeJS,你不应该只学习第三方库。我建议先习惯基础知识。就像在 javascript 之前学习 jQuery 不是一个好主意。
-
这完全取决于您的要求。例如。
request“默认遵循重定向”,http.get没有。
标签: javascript node.js http npm node-modules