我有這在我的節點腳本(簡化了這個問題)屬性名稱:使用以下劃線(「_」)開始
var http = require("http"),
url = require("url"),
options = url.parse("http://example.com/"),
moreOptions = url.parse("http://example.net/"),
callback,
request,
moreDifferentRequest;
callback = function(res) {
console.log(res.socket._httpMessage._headers.host);
}
request = http.request(options, callback);
request.end();
moreDifferentRequest = http.request(moreDifferentOptions, callback);
moreDifferentRequest.end();
我從res.socket._httpMessage._headers.host
抓住主機名,因爲它不存在在res.headers
。
但下劃線讓我停下來。他們對我說:「嘿,這只是作爲私人財產對待,僅供socket
供內部使用,所以不要閱讀它,因爲它可能會在更高版本中完全改變,我們也不會說您。」
如果我正確地認爲我是這樣做是錯誤的在這裏,在回調中獲取主機名的正確方法是什麼?或者,我只是完全誤解了下劃線,我做的很好?
是的,這正是他們想說什麼。如果可能的話,正確的方法當然是使用公開的,有記錄的API。但是,如果不可能,那麼你必須做到這一點,如果事情破裂,意識到它在你身上。 – Esailija
看看** @ David de Rosier第三點**這裏:http://stackoverflow.com/a/7217209/1601332 //或許給你一些關於它的信息;-)祝你好運! – gmo