NODEJS 22.X.X


INSTALACION


curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh
bash nodesource_setup.sh
apt install nodejs

NPM

npm install paquete -g - Instala paquete globalmente.Asi convertimos el paquete un comando ejecutable
npm install paquete - Instala el paquete de forma local. Esto se hace cuando el paquete se necesita para el uso de la app local.
npm uninstall paquete -g - Desinstala paquete global
npm uninstall paquete - Desinstala paquete local
npm install package@0.0.0- Instala una version especifica

npm list -g --depth=0 - Lista los paquetes globales instalados
npm list --depth=0 - Lista los paquetes locales instalados

npm view paquete version - Muestra la version del paquete
npm search package - Busca un paquete

npm update -g - Actualiza los paquetes globales
npm update - Actualiza los paquetes locales

npm outdated -g - Lista los paquetes globales anticuados
npm outdated - Lista los paquetes locales anticuados

npm -v - Muestra la version de npm que esta instalada

npm install -g npm-check-updates - instala paquete para chequear actualizaciones
ncu -g - chequea paquetes global
ncu -g -u - actualiza los paquetes globales
ncu - chequea paquetes locales
ncu -u - actualiza los paquetes locales de package.json

Semver versiones semanticas

node


DOCS

Documentacion oficial de la API

Este enlace va a la ultima version de node, si usas LTS u otra desde ahi te salen todas las opciones

MODULOS DEL CORE

fs (sistema de archivos)

os (sistema operativo)

const os = require('os')

console.log('Hostname: ' + os.hostname())
console.log('OS type: ' + os.type())
console.log('OS platform: ' + os.platform())
console.log('OS release: ' + os.release())
console.log('OS uptime: ' + (os.uptime() / 60 / 60 / 24).toFixed(1) + ' days')
console.log('CPU architecture: ' + os.arch())
console.log('Number of CPUs: ' + os.cpus().length)
console.log('Total memory: ' + (os.totalmem() / 1e6).toFixed(1) + ' MB')
console.log('Free memory: ' + (os.freemem() / 1e6).toFixed(1) + ' MB')


ESModules

Como de momento con ESM no se puede leer directamente un archivo json
import packageJSON from './package.json' with { type: 'json' };
hay que hacer lo siguiente

// Sincrona 1
import { createRequire } from "module";
const require = createRequire(import.meta.url);
const data = require("./data.json");
// data ya contiene los datos parseados de data.json

// Sincrona 2
import { readFileSync } from "fs";
const packageJSON = JSON.parse(readFileSync("./package.json"));

ASYNC-AWAIT

Relacion con Promises

async function f(x) { /* body */ }

// es equivalente a esto con promises ....

function f(x) {
  return new Promise(function(resolve, reject) {
    try {
      resolve((function(x) { /* body */ })(x));
    }
      catch(err) {
      reject(err);
    }
  });
}

Patrones

Funcion asincrona anonima

let main = (async function() {
  const data = await myAsyncFunc();
})();

Declaracion de funcion asincrona

async function main() {
  const data = await myAsyncFunc();
};

Asignar funcion asincrona

let main = async function() {
  const data = await myAsyncFunc();
};

let main = async () => {
  const data = await myAsyncFunc();
};

Objeto y metodo de clase

// Propiedad de objeto
let obj = {
  async method() {
    const data = await myAsyncFunc();
  }
};

// Metodos de clase
class MyClass {
  async myMethod() {
    const data = await myAsyncFunc();
  }
}

Manejo de errores

try {
  const data = await myAsyncFunc();
}
catch(e) {
 // Error!
}