Objeto de proceso de nodo explicado

El processobjeto en Node.js es un objeto global al que se puede acceder dentro de cualquier módulo sin requerirlo. Hay muy pocos objetos o propiedades globales proporcionados en Node.js y processes uno de ellos. Es un componente esencial en el ecosistema de Node.js, ya que proporciona varios conjuntos de información sobre el tiempo de ejecución de un programa.

Para explorar usaremos una de sus propiedades que se llama process.versions. Esta propiedad nos dice la información sobre la versión de Node.js que tenemos instalada. Tiene que usarse con -pbandera.

$ node -p "process.versions" # output { http_parser: '2.8.0', node: '8.11.2', v8: '6.2.414.54', uv: '1.19.1', zlib: '1.2.11', ares: '1.10.1-DEV', modules: '57', nghttp2: '1.29.0', napi: '3', openssl: '1.0.2o', icu: '60.1', unicode: '10.0', cldr: '32.0', tz: '2017c' }

Otra propiedad que puede verificar es process.releaseque es la misma que el comando $ node --versionque usamos cuando instalamos Node.js. Pero el resultado esta vez será más detallado.

node -p "process.release" # output { name: 'node', lts: 'Carbon', sourceUrl: '//nodejs.org/download/release/v8.11.2/node-v8.11.2.tar.gz', headersUrl: '//nodejs.org/download/release/v8.11.2/node-v8.11.2-headers.tar.gz' }

Estos son algunos de los diferentes comandos que podemos usar en una línea de comandos para acceder a información que de otro modo ningún módulo podría proporcionar.

Este processobjeto es una instancia de la clase EventEmitter. Contiene sus propios eventos predefinidos, como los exitque se pueden usar para saber cuándo un programa en Node.js ha completado su ejecución.

Ejecute el programa a continuación y podrá observar que el resultado aparece con un código de estado 0. En Node.js, este código de estado significa que un programa se ha ejecutado correctamente.

process.on('exit', code => { setTimeout(() => { console.log('Will not get displayed'); }, 0); console.log('Exited with status code:', code); }); console.log('Execution Completed');

Salida del programa anterior:

Execution Completed Exited with status code: 0

Processtambién proporciona varias propiedades con las que interactuar. Algunos de ellos se pueden usar en una aplicación de nodo para proporcionar una puerta de enlace para comunicarse entre la aplicación de nodo y cualquier interfaz de línea de comandos. Esto es muy útil si está creando una aplicación o utilidad de línea de comandos usando Node.js

  • process.stdin: una secuencia legible
  • process.stdout: una secuencia de escritura
  • process.stderr: una secuencia que se puede escribir para reconocer errores

Usando argvsiempre puede acceder a los argumentos que se pasan en una línea de comando. argves una matriz que tiene el propio nodo como primer elemento y la ruta absoluta del archivo como segundo elemento. A partir del tercer elemento, puede tener tantos argumentos como desee.

Pruebe el siguiente programa para obtener más información sobre cómo puede utilizar estas diversas propiedades y funciones.

process.stdout.write('Hello World!' + '\n'); process.argv.forEach(function(val, index, array) { console.log(index + ': ' + val); });

Si ejecuta el código anterior con el siguiente comando, obtendrá el resultado y los dos primeros elementos argvestán impresos.

$ node test.js # output Hello World! 0: /usr/local/bin/node 1: /Users/amanhimself/Desktop/articles/nodejs-text-tuts/test.js