He esto en mi guión Nodo (simplificados para esta pregunta):El uso de nombres de propiedades que comienzan con un guión bajo ("_")
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();
que estoy tomando el nombre de host del res.socket._httpMessage._headers.host
porque no existe en res.headers
.
Pero los guiones bajos me dan una pausa. Me dicen: "Oye, esto debe tratarse como una propiedad privada para uso interno solo por socket
, así que no lo leas, porque podría cambiar totalmente en una versión posterior y no vamos a decir tú."
Si estoy en lo cierto al pensar que estoy Haciéndolo mal aquí, ¿cuál es la forma correcta de obtener el nombre de host dentro de la devolución de llamada? ¿O estoy simplemente malinterpretando los guiones bajos y lo que estoy haciendo está bien?
Sí, eso es exactamente lo que están tratando de decir. La forma correcta sería, por supuesto, usar API públicas y documentadas si eso es posible. Pero si no es posible, entonces debes hacer esto y darte cuenta de que está en ti si algo se rompe. – Esailija
Eche un vistazo a ** @ David de Rosier tercer punto ** aquí: http://stackoverflow.com/a/7217209/1601332 // tal vez le dé un poco de luz al respecto ;-) ¡Buena suerte! – gmo