我对node js还不熟悉,在learnyonode的nodejs练习8中,我的解决方案产生了相同的需求结果。
目标:
编写一个程序,对提供给您的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);
})

最佳答案

nodeJS documentation
由于大多数请求都是不带主体的get请求,node.js提供
这种方便的方法。这种方法与
request()是将方法设置为get并调用req.end()
自动。注意,响应数据必须在
根据http.clientrequest部分中说明的原因进行回调。
所以,这到底意味着什么,你可以按照自己的方式去做,没有任何问题。但是request不是node本身附带的模块,它是一个让开发人员更容易处理http(s)请求的模块。所以我猜,你在学习nodejs而不是使用第三方应该是一条路。

关于javascript - http.get()方法和var request = require('request')有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45713442/

10-11 09:32