3 Módulos Nativos¶
Introducción¶
Al instalar Node JS en nuestro ordenador, se instala con él una cantidad de módulos predeterminados que podemos usar en nuestros proyectos. Como por ejemplo, un módulo para manejar ficheros, otro módulo para conocer las características del sistema, etc.
Cuando se va importar un módulo nativo Node JS, desde la versión 16, se recomienda usar el prefijo node
antes del nombre del módulo:
OS info¶
Este módulo permite conocer información del sistema operativo en el que se está ejecutando el fichero Javascript. Algunos de sus métodos importantes son:
arch()
: Retorna la arquitectura del sistema en el que se está compilando el fichero Node JS. Puede devolver por ejemplo,arm,arm64,x64, etc.cpus()
: Retorna un array con la información de cada CPU. El array puede estar vacío si no se puede obtener información.homedir()
: Retorna la ruta de la carpeta principal del usuario actual.hostname()
: Retorna el nombre del sistema.platform()
: Retorna la plataforma del sistema operativo en el que se ejecuta, como linux, win32, etc.type()
: Retorna el tipo de sistema operativo: Linux, Windows_NT.uptime()
: Retorna en segundos el tiempo en el que el sistema ha estado activo.version()
: Retorna la versión del kernel.
const os = require('node:os') // Importación con el prefijo node RECOMENDADO
console.log('Información del sistema operativo:')
console.log('-------------------')
console.log('Nombre del sistema operativo', os.platform())
console.log('Versión del sistema operativo', os.release())
console.log('Arquitectura', os.arch())
console.log('CPUs', os.cpus())
console.log('Memoria libre', os.freemem() / 1024 / 1024)
console.log('Memoria total', os.totalmem() / 1024 / 1024)
console.log('uptime', os.uptime() / 60 / 60)
import { platform, release, arch, cpus, freemem, totalmem, uptime } from 'node:os' // Importación con el prefijo node RECOMENDADO
console.log('Información del sistema operativo:')
console.log('-------------------')
console.log('Nombre del sistema operativo', platform())
console.log('Versión del sistema operativo', release())
console.log('Arquitectura', arch())
console.log('CPUs', cpus())
console.log('Memoria libre', freemem() / 1024 / 1024)
console.log('Memoria total', totalmem() / 1024 / 1024)
console.log('uptime', uptime() / 60 / 60)
Process¶
Process es un módulo nativo de Node JS que permite tratar con el proceso actual, es decir, el que ejecuta el archivo Javascript, es decir, el node index.js
.
Al realizar la ejecución del archivo js podemos pasarle parámetros seguidos del nombre del archivo. Con el atributo args
se obtiene un array con todos los parámetros, donde el primer elemento args(0)
corresponde a archivo de ejecución de node, y el segundo elemento args(1)
se corresponde a el nombre del archivo que se está ejecutando. A partir de este número se puede obtener todos los argumentos que se pueden obtener.
Con el método exit(n)
se puede terminar el proceso actual con el número n que indica como ha finalizado el proceso. Normalmente se usa 0 cuando el proceso ha terminado con éxito (sin errores), mientras que se elige otro número para indicar cualquier error.
Al ser Javascript un lenguaje orientado a evento, podemos escuchar el evento exit
para poder hacer algo cuando se finalice el proceso actual, como por ejemplo hacer una limpieza de los recursos:
const process = require('node:process')
// Obtenemos un número de la consola de comando,
// si no se indica ninguno obtenemos el número 0
const num = process.argv[2] ?? 0
if (num == 0) {
process.on('exit', () => {
console.error('Ha habido un error ! Tenemos que irnos')
})
process.exit(1) // Si no se indica número se sale del proceso con error
}
console.log(num)
Con cwd()
podemos obtener la ruta actual de donde estamos ejecutando el archivo Javascript
Las variables de entorno son constantes que se utilizan durante la ejecución de un programa. Para definir una variable de entorno con Node JS hay que preceder NOMBRE=valor
antes del node archivo.js
, donde NOMBRE es el valor del nombre de la variable, que suele ir en mayúsculas al ser una constante, y valor es el valor de dicha variable.
Para poder leer una variable de entorno, podemos usar la variable env
del módulo process, seguido del nombre de la variable: process.env.NOMBRE
Ejercicio
Realiza una aplicación "info.js" que pueda recibir hasta 2 parámetros en su llamada. Si no recibe ningún parámetros mostrará una información completa del sistema operativo actual.
El primer parámetro a recibir es la palabra -m que mostrará la memoria en GB. El segundo parámetro a recibir es la palabra -o que mostrará el nombre del sistema operativo y su versión.
Se puede utilizar los dos parámetros a la vez (-m -o), o simplemente uno. Sin embargo, hay que tener en cuenta si recibe como parámetro algo diferente a lo indicado anteriormente saldrá de la aplicación mostrando un mensaje de error.