7-Http Client
這程式主要的目標是,要抓網頁的原始碼,也就是 html 檔案下來,顯示到 console or terminal 中。也是一個我不看解答就不知道怎麼開始的題目 ...
官網的答案
其實官網的答案我看不太懂,尤其是最後一句話 .on( 'error', console.error)
。為什麼 js 有這麼多違反直覺的東西啊(倒地)
所以我決定,投機取巧,先看別人的改良版本
// 發起 http request 和 response
// 但好像不用建立 server
var http = require('http')
http.get(process.argv[2], function (response) {
response.setEncoding( 'utf8' )
response.on( 'data' , console.log )
response.on( 'error', console.error)
}).on( 'error', console.error)
別人的改良版本
他同時可以讀取 http 和 https 協定的網頁,然後字串的部份他用 data.toString()
來轉換,取代官方的response.setEncoding( 'utf8' )
。
老實說,我都看不懂啊 orz
// 可以讀取 http 和 https 的網頁
var http = require('http')
var https = require('https')
var url = process.argv[2]
var prefix = url.substring(0,8)
if (prefix === 'https://'){
https.get(url, function (response) {
response.setEncoding( 'utf8' )
response.on( 'data', console.log )
// response.on('data', function (data) {
// console.log(data.toString());
// })
})
} else {
http.get(url, function (response) {
response.on('data', function (data) {
console.log(data.toString());
})
})
}
stream, 'data'
http.get()
Event, emitter.on
Last updated
Was this helpful?