Visualización de “logs” del servidor NodeJs en el Browser.

Adrian Pedro Zelada Torrez
MyCodeBad
Published in
4 min readJan 4, 2020
     "Porque en la calle codo a codo somos mucho mas que dos..."
La Paz — Bolivia

Muchas veces al desarrollar una aplicación con un Backend escrito en NodeJs, tendemos a lanzar muchos mensajes a la terminal console.log(data) que nos ayudan a realizar un seguimiento del estado de nuestra aplicación, en algún momento se nos hace tedioso buscar esa impresión en la terminal, en algunos casos incluso nos equivocamos de impresión o en algunos casos queremos identificar en que archivo y la linea de código donde se esta ejecutando esa impresión en pantalla “console.log(data)” por que NodeJs solo imprime los argumentos que le pasamos y no nos hace referencia a que archivo y ni en que linea de código se ejecuto esa impresión.

Csb-Inspector

csb-inspector es una librería identifica el archivo y la linea de código donde se esta ejecutando la impresión en pantalla “console.log(data)” y nos muestra la referencia de donde se esta ejecutando la impresión.

File:

Console.log

Terminal:

Terminal

Si vemos la anterior imagen, nosotros podemos ver la referencia de a que archivo y linea de código pertenece esa impresión en la terminal.

Instalación

Vamos a nuestra terminal y en la carpeta de nuestro proyecto NodeJs instalamos la dependencia.

$ npm i --save csb-inspector

Una vez instalado implementamos la librería,

const CsbInspector = require('csb-inspector');
CsbInspector({
outputs: [
(path, key, args )=> {
path: "reference to file",
key: "type of console, 'log', 'error'",
args: 'arguments'
}
]
});

Como vemos le enviamos un objeto con una propiedad “outputs” esta contiene un array de funciones que reciben 3 parámetros. Está propiedad nos ayuda a extender la funcionalidad de esta librería, obteniendo esos parámetros podríamos guardarlos en archivo o otras opciones que veamos útiles. Este parámetro no es Obligatorio.

Está implementación nos sera util en cualquier servidor NodeJs.

Pero aun estamos trabajando en la terminal, si bien tenemos las referencia de los impresiones en la terminal, no tenemos la facilidad de hacer búsquedas o simplemente de visualizar de manera más cómoda los datos en la terminal.

Csb-Inspector/express-socket

La librería csb-inspector provee de un panel de control que nos muestra en el browser en tiempo real las Impresiones en la terminal “console.log(data)” con su respectiva referencia a el archivo y linea de código y también muestra la hora en que se produjo.

Esta funcionalidad se puede implementar para aplicaciones que están en base de ExpressJs .

Implementación.

Options.

const options = {
app: app,
route: "_console",
port: 8888,
outputs: [(path, prop, args)=>{
fs.appendFileSync("file.txt", path);
}]
}
  • app: Aplicación Express (requerido).
  • route: Ruta donde se desplegará el panel de control (Por defecto sera “_console”) (opcional).
  • port: Puerto por el cual escucha el socket (Por defecto es el 8888) (opcional).
  • outputs: Array de funciones que reciben 3 parámetros, que nos permite extender la funcionalidad de la librería (opcional).
const express = require('express');
const app = express();

const CsbInspector = require('csb-inspector/express-socket');
const options = {
app: app,
route: "_console",
port: 8888,
outputs: [(path, prop, args)=>{
fs.appendFileSync("file.txt", path);
}]
}
CsbInspector(options);

Este código tiene que estar en el archivo donde se inicializa el servidor con ExpressJs.

File:

Error en la linea 22

Levantamos la aplicación y vamos a :

http://localhost:{SERVER_PORT}/{options.router}

En el Panel podemos visualizar las impresiones en la terminal e incluso podemos visualizar errores que ocurrieron en la Aplicación.

Documentación: https://adrianzelada.github.io/csb-inspector

Repositorio: https://github.com/adrianzelada/csb-inspector.

NPM: https://www.npmjs.com/package/csb-inspector

Espero que les sea util esta librería.

Muchas Gracias por su Atención

--

--

Adrian Pedro Zelada Torrez
MyCodeBad

Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. Albert Einstein.