Node.js console.log () no registra nada

92

Probar node.js por primera vez. Configure el nodo, configure la aplicación de ejemplo desde el sitio nodejs.org . Puede iniciar bien el servidor, pero en console.log()realidad no registra nada. Probé la consola de JavaScript en Chrome, Firefox y Safari; no aparece nada en el registro. También verifiqué Console en mi Mac solo por diversión, tampoco había nada. ¿Qué me estoy perdiendo?

(Aquí está el código de ejemplo que funciona pero no registra nada).

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
Chrismanderson
fuente
¿Cómo está ejecutando esta aplicación? Que ambiente Si está en la consola de su máquina local, debería ver los registros que provienen de la aplicación allí. Si está utilizando una solución alojada, generalmente proporcionan alguna forma de ver los registros a través de una interfaz web y a través de su herramienta API de línea de comandos.
Treffynnon
No puedo replicar esto en mi máquina. Esto funciona bien. ¿Qué versión estás ejecutando?
Sean Hill
3
console.log () emite las cadenas en la ventana de la terminal (la interfaz de línea de comandos donde se ejecuta la aplicación)
Pastor Bones
¿Cómo iniciaste el servidor, sin notar la salida en la consola?
RobertPitt
3
No tienes idea de lo tonto que me siento por esto :).
chrismanderson

Respuestas:

158

En un servidor node.js, las console.logsalidas a la ventana de la terminal, no a la ventana de la consola del navegador.

¿Cómo está ejecutando su servidor? Debería ver el resultado directamente después de iniciarlo.

david
fuente
91
Votaría en contra de mi propia pregunta si pudiera. No puedo creer que no hice esta conexión.
chrismanderson
4
todos los que miran con nodejs esperan lo mismo ... la salida de la consola debe registrarse en la consola del navegador, así como en la terminal.
Brad Parks
14
@Brad No, no debería. No todos los programas de nodo son servidores web, e incluso si lo fueran, no tendría sentido.
David
4
@David: entiendo tu punto ... Sé que, por lo general, las cosas del lado del servidor nunca se registran directamente en el registro del cliente ... pero node.js es javascript, lo que hace que la gente piense en el lado del cliente, hasta cierto punto ... y desde el método de registro tiene exactamente el mismo nombre que el del lado del cliente, "console.log", entonces creo que se sigue que algunas personas pensarían que podría iniciar sesión en la consola del navegador.
Brad Parks
@BradParks, @david Sí, también estaba buscando la salida en la consola del navegador sobre el uso de console.log(), luego llegué a esta Q / A.
Sithu
9

Esto puede resultar confuso para cualquiera que utilice nodejs por primera vez. De hecho, es posible canalizar la salida de la consola del nodo a la consola del navegador. Eche un vistazo a connect-browser-logger en github

ACTUALIZACIÓN: Como señaló Yan, connect-browser-logger parece haber desaparecido. Recomendaría NodeMonkey como se detalla aquí: Salida a la consola Chrome desde Node.js

sin átomo
fuente
El proyecto github ya no existe
yan
5
Además, esto probablemente esté yendo por el camino equivocado. Iniciar sesión en el servidor de nodos en la consola del navegador es una práctica extraña. Puedo pensar en cero momentos en los que esto sería realmente útil. Para ser totalmente honesto, intentar iniciar sesión de servidor a cliente en la consola parece una falta de comprensión de cómo se debe construir el software. No lo digo de una manera mezquina, solo es un concepto básico de separación de preocupaciones. El hecho de que ambos usen javascript no significa que sean el mismo ENTORNO. Allí hay una distinción muy importante.
dudewad
6

Usando modern --inspect con node, el archivo console.log se captura y se transmite al navegador.

nodo --inspect myApp.js

o para capturar el registro temprano --inspect-brk se puede usar para detener el programa en la primera línea del primer módulo ...

nodo --inspect-brk myApp.js

J Decker
fuente