【发布时间】:2012-08-24 17:40:12
【问题描述】:
我的 Node 脚本中有这个(针对这个问题进行了简化):
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。但如果这不可能,那么你必须这样做,并意识到如果出现问题,它就在你身上。
-
看看这里的 @David de Rosier 第三点:*.com/a/7217209/1601332 // 或许能给你一些启示 ;-) 祝你好运!
标签: javascript node.js