NodeJs
Es un programa escrito en C++ con el interprete de Google Chrome V8 extendido. Es decir, que utiliza un interprete de Javascript y lo extiende para agregarle bastantes características propias de un servidor.
Nodejs es un servidor servidor, permite crear servicios, servicios que son consumidos por uno o varios clientes (navegadores web por ejemplo). Esto es lo que llamamos Modelo Cliente-Servidor
Requisitos Previos
-
Install Windows Subsystem for Linux
-
Set up Visual Studio Code
-
Node Js
Instalar una versión específica de Node.js usando NVM
Otra forma de instalar Node.js en Ubuntu es hacer uso del Administrador de versiones de nodos (NVM), un script bash que se utiliza para administrar múltiples versiones de Node.js.
Instalar Node.js utilizando el método NVM es ideal si desea utilizar una versión específica. Para comenzar, descargue e instale NVM usando wget:
- Abra la consola de Ubuntu y utilice el siguiente comando:
- Para instalar una versión diferente, reemplace v0.39.0 por otro valor o use el siguiente comando para descargar la versión más reciente:
- Permita que el script NVM se ejecute desde el perfil bash de su usuario:
Una vez instalado NVM,
Instalar NVM en su Sistema
- Compruebe todas las versiones disponibles de Node.js mediante NVM ejecutando el siguiente comando:
- Si bien puede instalar cualquier versión Node.js, le recomendamos que utilice la versión más reciente para garantizar su compatibilidad y confiabilidad. Para este ejemplo, instalaremos la última versión de LTS en el momento de escribir este artículo:
- Compruebe si se ha instalado correctamente consultando el número de versión actualmente activo:
Consideraciones antes de de Crear un Proyecto
Dentro del terminal de ubuntu, crear una carpeta donde pretende alojar el proyecto.
Paso 1:
mkdir sitealmacen y luego
Una vez dentro de la carpeta ingresar code . para entrar a visual studio code y desde allí trabajar mejor el proyecto.
Una vez dentro de Visual Studio Code, ingresar a una nueva terminal (Menu de Opciones > Terminal > Nueva Terminal)
Ahora si iniciemos los pasos:
Paso 0:
# Dependencias de desarrollo
npm install -D typescript @types/node nodemon ts-node
npm install -D @types/express @types/morgan @types/cors
# Crear archivo de configuración TypeScript
npx tsc --init
Nota: Antes de continuar, hacemos conexión con VS CODE en el entorno para ver los archivos generados
En el archivo tsconfig.json, cambiar
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"rootDir": "./src",
"outDir": "./dist",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"verbatimModuleSyntax": false,
"skipLibCheck": true
}
}
En el archivo package.json, cambiar
{
"scripts": {
"build": "tsc",
"dev": "nodemon src/server.ts --exec ts-node"
},
"type": "commonjs"
}
Paso 2:
2.1 Instalación de Dependencias Core
2.2 Crear estructura de directorios

Desglose detallado:
src/
-
config/ - Configuración principal de la aplicación
-
controllers/ - Controladores para manejar la lógica de negocio
-
database/ - Configuración y conexión a base de datos
-
faker/ - Scripts para generar datos de prueba
-
http/ - Archivos .http para testing de endpoints
-
middleware/ - Middleware personalizado (autenticación, etc.)
-
models/ - Modelos de Sequelize
- authorization/ - Modelos específicos del sistema de autorización
-
routes/ - Definición de rutas de la API
Paso 3: Configuración del Servidor
Crear el archivo src/server.ts y src/config/index.ts
Crear el archivo src/server.ts
import { App } from './config/index';
async function main() {
const app = new App();
await app.listen();
}
main();
Luego, crear el archivo src/config/index.ts
import dotenv from "dotenv";
import express, { Application } from "express";
import morgan from "morgan";
var cors = require("cors");
dotenv.config();
export class App {
public app: Application;
constructor(private port?: number | string) {
this.app = express();
this.settings();
this.middlewares();
this.routes();
this.dbConnection();
}
private settings(): void {
this.app.set('port', this.port || process.env.PORT || 4000);
}
private middlewares(): void {
this.app.use(morgan('dev'));
this.app.use(cors());
this.app.use(express.json());
this.app.use(express.urlencoded({ extended: false }));
}
private routes(): void {
// Las rutas se configurarán más adelante
}
private async dbConnection(): Promise<void> {
// Conexion, configuracion y sincronizar BD
}
async listen() {
await this.app.listen(this.app.get('port'));
console.log(`🚀 Servidor ejecutándose en puerto ${this.app.get('port')}`);
}
}
Una vez realizado estos dos archivos, ejecutamos con
npm run dev

Y si nos dirigimos al navegador y en la URL, colocamos
localhost:4000, nos muestra lo siguiente:

Ya está escuchando el puerto 4000, para las diferentes peticiones.