DEV Community

Cover image for Node - instalación y configuración en Ubuntu
Oscar Pincho
Oscar Pincho

Posted on

Node - instalación y configuración en Ubuntu

NodeJs - Logo

Prerequisitos - instalacion de Homebrew y asdf en ubuntu

📘 Documentación Oficial


⭐ Frameworks Populares (ordenado de menor a mayor curva)

  • Express — Framework minimalista y flexible para crear APIs y servidores HTTP con Node.js.
  • Fastify — Framework rápido y eficiente, enfocado en alto rendimiento y bajo consumo de recursos.
  • NestJS — Framework modular y estructurado, inspirado en Angular, ideal para aplicaciones escalables en Node.js.

🛠️ Instalación en Ubuntu

sudo apt update
sudo apt install nodejs npm
Enter fullscreen mode Exit fullscreen mode

Para versiones actualizadas, se recomienda NodeSource:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
Enter fullscreen mode Exit fullscreen mode

🍺 Instalación con Homebrew

brew install node
Enter fullscreen mode Exit fullscreen mode

📦 Gestor de Paquetes Estándar

Node usa npm (incluido por defecto) o pnpm/yarn opcionalmente.

Instalar pnpm (globalmente):

npm install -g pnpm
Enter fullscreen mode Exit fullscreen mode

🔧 Instalación con ASDF

# agregar plugin
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

# importar claves
bash ~/.asdf/plugins/nodejs/bin/import-release-team-keyring

# instalar una versión
asdf install nodejs 20.11.0

# set global o local
asdf global nodejs 20.11.0
# o
asdf local nodejs 20.11.0
Enter fullscreen mode Exit fullscreen mode

📄 Ejemplo .tool-versions

nodejs 20.11.0
Enter fullscreen mode Exit fullscreen mode

🔧 Instalar NVM (Node Version Manager)

Mas alla de que puede usarse asdf para unificar todos los gestores de versiones en una sola herramienta, lo cierto es que el standard en node es NVM, asi que tambien me parase correcto dejar el standrad para familiarizarse con el.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

source ~/.nvm/nvm.sh
Enter fullscreen mode Exit fullscreen mode

Instalar una versión de Node.js con NVM

# Instalar la última versión LTS
nvm install --lts

# Instalar una versión específica
nvm install 20.11.0

# Usar una versión instalada
nvm use 20.11.0

# Definir versión por defecto
nvm alias default 20.11.0

# Lista de comandos útiles de NVM
nvm ls
nvm ls-remote
nvm ls-remote --lts
nvm ls
nvm uninstall 18
Enter fullscreen mode Exit fullscreen mode

📄 Ejemplo .nvmrc

20.11.0
Enter fullscreen mode Exit fullscreen mode

📝▶️ Crear y ejecutar un archivo Node.js

Crear archivo: touch index.js

Contenido de index.js

console.log('Hola Mundo Node');
Enter fullscreen mode Exit fullscreen mode

💻 Ejecutar Localmente:

node index.js
Enter fullscreen mode Exit fullscreen mode

quieres saber mas?


🟩 Ejemplo básico en Node.js

🗂️🌐 Servidor Web de archivos estaticos.

Que Hace:

  1. Definir el nombre del parámetro de consulta (query parameter)
  2. Obtener el valor del parámetro de consulta de la URL.
    • Se usa url.searchParams.get() para acceder a los query parameters.
    • y se usa stripTags(input), para limpiar de etiquetas < y > en entidades HTML.
  3. Se dibuja la variable recibida en el query parameter dentro de la etiqueta

📝 Crear archivo: touch server.js

📦 Contenido de server.js

import http from "http";
import { URL } from "url";

// Sanitización de url
function stripTags(input) {
  return input.replace(/<[^>]*>/g, "");
}

const server = http.createServer((req, res) => {
  const url = new URL(req.url, `http://localho7000`);
  const username = stripTags(url.searchParams.get("username") || "invitado");

  const html = `
    <!DOCTYPE html>
    <html lang="es">
    <head><meta charset="UTF-8"><title>Hola</title></head>
    <body style="text-align:center">
        <h1>Hola, ${username}</h1>
    </body>
    </html>
  `;

  res.writeHead(200, { "Content-Type": "text/html" });
  res.end(html);
});

server.listen(7000, () => {
  console.log("Servidor en http://localhost:7000?username=Homero");
});
Enter fullscreen mode Exit fullscreen mode

▶️ Correr el proyecto / levantar el servidor

node index.js
Enter fullscreen mode Exit fullscreen mode

👉 visitar:
http://localhost:8000/?username=javier


⚙️🧩 Json API Rest

Que Hace:

  1. Lee los datos desde un archivo data.json
  2. expones 1 endpoint con esos datos
    • Una Lista de personajes en /characters
    • y los datos de un personaje por id /characters/:id

Ejemplo de archivo: data.json

[
  {
    "id": 1,
    "age": 39,
    "name": "Homer Tompson",
    "portrait_path": "https://cdn.thesimpsonsapi.com/500/character/1.webp"
  },
  {
    "id": 2,
    "age": 39,
    "name": "Marge Simpson",
    "portrait_path": "https://cdn.thesimpsonsapi.com/500/character/2.webp"
  }
]
Enter fullscreen mode Exit fullscreen mode

📝 Crear archivo: touch api.js

▶️ Contenido del archivo: api.js

import http from "http";
import fs from "fs";
import url from "url";

function loadCharacters() {
  const json = fs.readFileSync("data.json", "utf8");
  return JSON.parse(json);
}

const server = http.createServer((req, res) => {
  res.setHeader("Content-Type", "application/json");

  const parsedUrl = url.parse(req.url, true);
  const path = parsedUrl.pathname;
  const method = req.method;

  const characters = loadCharacters();

  // GET /characters → lista completa
  if (method === "GET" && path === "/characters") {
    res.end(JSON.stringify(characters));
    return;
  }

  // GET /characters/:id → buscar por ID
  const match = path.match(/^\/characters\/(\d+)$/);
  if (method === "GET" && match) {
    const id = parseInt(match[1], 10);
    const found = characters.find((c) => c.id === id);

    if (found) {
      res.end(JSON.stringify(found));
      return;
    }

    res.statusCode = 404;
    res.end(JSON.stringify({ error: "Personaje no encontrado" }));
    return;
  }

  // Ruta no encontrada
  res.statusCode = 404;
  res.end(
    JSON.stringify({
      error: "Ruta no encontrada",
      url_lista: "http://localhost:7001/characters",
      url_personaje: "http://localhost:7001/characters/1",
    })
  );
});

server.listen(7001, () => {
  console.log("Servidor corriendo en http://localhost:7001/characters");
});
Enter fullscreen mode Exit fullscreen mode

▶️ Correr el proyecto / levantar el servidor

node api.js
Enter fullscreen mode Exit fullscreen mode

👉 visitar:
http://localhost:7001/characters

Para probar el sanitizado de url:
http://localhost:7001/characters/1


Instalación y configuración en Ubuntu de:

Top comments (0)