你想創(chuàng)建一個 HTTP 客戶端。
在這個方法中,我們將使用 HTTP 庫。我們將從一個簡單的客戶端 GET 請求示例返回計算機的外部 IP 。
http = require 'http'
http.get { host: 'www.google.com' }, (res) ->
console.log res.statusCode
get 函數,從 node.js's http 模塊,發(fā)出一個 GET 請求到一個 http 服務器。響應是以回調的形式,我們可以在一個函數中處理。這個例子僅僅輸出響應狀態(tài)代碼。檢查一下:
$ coffee http-client.coffee
200
如果你是在一個類似局域網的依賴于 NAT 的網絡中,你可能會面臨找出外部 IP 地址的問題。讓我們?yōu)檫@個問題寫一個小的 coffeescript 。
http = require 'http'
http.get { host: 'checkip.dyndns.org' }, (res) ->
data = ''
res.on 'data', (chunk) ->
data += chunk.toString()
res.on 'end', () ->
console.log data.match(/([0-9]+\.){3}[0-9]+/)[0]
我們可以從監(jiān)聽 'data' 事件的結果對象中得到數據,知道它結束了一次 'end' 的觸發(fā)事件。當這種情況發(fā)生時,我們可以做一個簡單的正則表達式來匹配我們提取的 IP 地址。試一試:
$ coffee http-client.coffee
123.123.123.123
請注意 http.get 是 http.request 的快捷方式。后者允許您使用不同的方法發(fā)出 HTTP 請求,如 POST 或 PUT。
在這個問題上的 API 和整體信息,檢查 node.js's http 和 https 文檔頁面。此外, HTTP spec 可能派上用場。