from - span value javascript
Nodo JS devolver nombre de host (3)
De acuerdo con la documentación de node.js para el módulo "os", debe cargar el módulo "os", que tiene una función de hostname()
:
var os = require("os");
var hostname = os.hostname();
Sin embargo, ese solo es el nombre de host, sin el nombre de dominio (el FQDN). No hay una manera fácil de obtener el FQDN. Puede usar las funciones de DNS de node.js para intentar convertir la dirección IP del servidor (que obtiene con os.networkInterfaces()
, consulte el enlace del documento más arriba) en un nombre. El único problema es que los servidores pueden tener diferentes interfaces y nombres, por lo que debe tomar una decisión sobre cuál desea.
Intentó usar el objeto de window
, pero eso solo existe en el entorno de tiempo de ejecución de JavaScript de los navegadores. El lado del servidor JavaScript no tiene ventanas, obviamente, por lo que no hay ningún objeto de window
. Vea esta pregunta: "¿Tiene node.js equivalente a un objeto de ventana en el navegador" .
Con esta información, su pregunta es un poco extraña: en el navegador window.location.hostname
es la parte del host de la URL desde la que se cargó la página actual. ¿Cómo se traduce eso a un contexto de servidor? El código que ejecuta en node.js es de ese mismo servidor, por definición, por lo que realmente no necesita esta información. Es posible que lo necesite en el navegador porque esa información es variable, especialmente cuando ejecuta mashups (código JS de varias fuentes), es posible que su código no sepa de dónde se cargó la página en la que se ejecuta. En el servidor siempre sabes que es tu sistema de archivos local.
Por cierto, siempre puedes usar localhost
como nombre de host :)
Todavía estoy aprendiendo Node JS y javascript y tengo una aplicación. Tengo un archivo de configuración donde necesito capturar el nombre de host del servidor en Ubuntu 12.04
Probé algo como:
window.location.hostname
Pero eso no funcionó. Código de muestra a continuación:
exports.config = {
app_name : [ window.location.hostname ]
}
Si utilizo una cadena, se cargará bien, pero esto se administrará a través de Github y debe diferenciarse cuando se cargue la aplicación.
Puedes usar
console.log(process.env.host);
Solo puede obtener el mismo nombre de host que obtendría de window.location.hostname
si está ejecutando un servidor con http.createServer . En ese caso, el nombre de host es una de las propiedades del objeto de solicitud:
request.headers.host
Me encantaría tomar crédito por esta respuesta, pero solo estoy aquí porque no sabía la respuesta. Encontré la respuesta publicada en esta respuesta SO .
Y eso hace que tu pregunta sea un duplicado.