0% encontró este documento útil (0 votos)
10 vistas57 páginas

NodeJS - Parte 1

El documento es una introducción a Node.js, un entorno de ejecución de JavaScript orientado a eventos asíncronos, que incluye información sobre su instalación, uso de NPM y NPX, así como la creación de un proyecto básico con Express. Se explican los métodos HTTP y cómo enviar peticiones al servidor, además de la validación de datos utilizando express-validator. También se mencionan herramientas útiles como Postman y Thunder Client para realizar pruebas de API.

Cargado por

gladysc7622202
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas57 páginas

NodeJS - Parte 1

El documento es una introducción a Node.js, un entorno de ejecución de JavaScript orientado a eventos asíncronos, que incluye información sobre su instalación, uso de NPM y NPX, así como la creación de un proyecto básico con Express. Se explican los métodos HTTP y cómo enviar peticiones al servidor, además de la validación de datos utilizando express-validator. También se mencionan herramientas útiles como Postman y Thunder Client para realizar pruebas de API.

Cargado por

gladysc7622202
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

NodeJS

Parte 1

Jhonny Felipez Andrade


Contenido
• ¿Que es [Link]?
• Inicia un proyecto
• Express
• Métodos HTTP
• Reinicia automáticamente el servidor
• Enviando Peticiones al Servidor
• Validación.

2
¿Qué es [Link]?
Entorno de Ejecución de JavaScript orientado a
Eventos Asíncronos.

Utiliza un Enfoque de Eventos Asíncronos; lo que


significa que puede realizar múltiples tareas
asincrónas tales como leer y escribir en el
servidor, conectarse a una base de datos o
enviar Request de Formularios.

3
Ventajas de [Link]
Código de JavaScript (ES6+)

NPM con una gran cantidad de paquetes

Apps Monolíticas, Micro Servicios o API’s

4
Quienes utilizan [Link]?
• NetFlix
• Uber
• Groupon
• PayPal
• Linkedin (20 veces mas rápido, y consume 35%
menos recurso del servidor)
• Walmart
• Medium
• Nasa
5
Enlace de [Link]

[Link]

6
¿Qué es NPM?
NPM (Node Package Manager) se enfoca en
instalar y gestionar paquetes, es decir,
descargar e instalar las dependencias en tu
proyecto

7
Para instalar
Para instalar paquetes:

> npm install <nombre-paquete>

Para instalar dependencias de desarrollo:

> npm install -D < nombre-paquete >

8
Enlace de NPM

[Link]

9
¿Qué es NPX?
NPX (Node Package eXecute) es una
herramienta incluida con NPM (Node Package
Manager) se enfoca en descargar (si no esta el
paquete) y ejecutar los paquetes.

10
Enlace de NPX

[Link]

11
INICIA UN PROYECTO

12
Inicia un proyecto de [Link]
Para iniciar un proyecto:

> npm init –y

y: acepta por defecto nombre, descripción,


Lo anterior crea el [Link]

13
[Link]
{
"name": "proyecto",
"version": "1.0.0",
"description": "",
"main": "[Link]",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs"
}

14
EXPRESS

15
¿Que es Express?
Es un Framework para [Link], muy
minimalista y con una serie de opciones que
son comunes para crear sitios web y
aplicaciones móviles.

Su Principal ventaja es que puedes instalar


los paquetes que vas a necesitar en tu
aplicación.

16
¿Qué Incluye Express?
• Routing y Redireccionamiento
• Soporte a los diferentes Métodos HTTP
• Middleware
• Soporte de Template Engines
• Manejo de Errores

17
Enlace de Express

[Link]

18
Para instalar Express

> npm install express

Lo anterior actualiza el [Link], crea el


[Link] (tiene los nombres de las
dependencias de las dependencias
utilizadas en nuestro proyecto) y crea la
carpeta node_modules (tiene las
dependencias)
19
[Link]
{
"name": "proyecto",
"version": "1.0.0", [Link] script
"description": "",
"main": "[Link]",
de inicio
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC", tipo: commonjs
"type": "commonjs",
"dependencies": {
"express": "^5.1.0"
} dependencias
}

20
[Link] (anterior)
const express = require("express"); // crea la variable
express

const app = express(); // llama a la función de express,

// Define un puerto y levanta el servidor


const puerto = 3001;
[Link](puerto,
() => { [Link](`Servidor en
[Link]
});

21
[Link]
{
"name": "proyecto",
"version": "1.0.0", [Link] script
"description": "",
"main": "[Link]",
de inicio
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC", tipo: module
"type": "module",
"dependencies": {
"express": "^5.1.0"
} dependencias
}

22
[Link] (nueva)
import express from "express"; // crea la variable express

const app = express(); // llama a la función de express,

// Define un puerto y levanta el servidor


const puerto = 3001;
[Link](puerto,
() => { [Link](`Servidor en
[Link]
});

23
MÉTODOS HTTP

24
¿Qué son lo métodos HTTP?
También conocidos como verbos HTTP,
son las acciones que un cliente (como un
navegador web) le indica al servidor que
debe realizar sobre un recurso.

Estos métodos definen la intención de la


solicitud y se utilizan para distintas
operaciones.

25
Métodos HTTP
GET – Utilizado para Mostrar Información.

POST – Utilizado para Enviar Información.

PUT / PATCH – Utilizado para Actualizar Información.

DELETE – Utilizado para Eliminar Información.

26
[Link]
import express from "express"; // crea la variable express

const app = express(); // llama la función de express,

// Definiendo peticiones y rutas


// req: petición al servidor
// res: respuesta del servidor
[Link]('/empleado', (req, res) => {
[Link]('Obteniendo Empleados');
});

// Define un puerto y levanta el servidor


const puerto = 3001;
[Link](puerto,
() => { [Link](`Servidor en [Link]
27
});
Para ejecutar NODE
Levanta el servidor:
> node [Link] ([Link] es un archivo script)

Salida:

28
No se definió ninguna respuesta, en esa ruta o
endpoint.

29
Se definió un mensaje como respuesta, en esa
ruta o endpoint.

30
REINICIA AUTOMÁTICAMENTE
EL SERVIDOR

31
Para reiniciar automáticamente
el servidor
Instale nodemon:
> npm install –D nodemon
-D dependencia de desarrollo

Modifique el [Link]: Con el script start se


{ ejecuta nodemon
...
"scripts": {
"start": "nodemon [Link]"
},
...
}

Para ejecutar el script start:


> npm run start
32
ENVIANDO PETICIONES AL
SERVIDOR

33
// [Link]
import express from "express";

const app = express();

[Link]('/empleado', (req, res) => {


[Link]('Obteniendo Empleados'); });
[Link]('/insercion', (req, res) => {
[Link]('Insertando Empleados'); });
[Link]('/actualiza', (req, res) => {
[Link]('Actualizando Empleados (put)'); });
[Link]('/actualizacion', (req, res) => {
[Link]('Actualizando Empleados (patch)'); });
[Link]('/elimina', (req, res) => {
[Link]('Eliminando Empleados'); });

const puerto = 3001;


[Link](puerto,
() => { [Link](`Servidor en [Link]
}); 34
Enlace de Postman

[Link]

35
Postman
Petición
Ruta

Envía la
solicitud

Salida 36
Extensión Thunder Client
de VS Code

[Link]

37
Instalación de Thunder Client

38
Instalación de Thunder Client

39
Inicio de Thunder Client

40
Thunder Client
Petición
Ruta

Envía la
solicitud

Salida

41
// [Link]
import express from "express";

const app = express();

// Lectura y parseo del body


[Link]([Link]());

[Link]('/insercion', (req, res) => {


[Link]([Link]);
});

const puerto = 3001;


[Link](puerto,
() => { [Link](`Servidor en [Link]
});

42
Thunder Client
Body

Entrada

Salida
43
Propiedades de REQ
[Link] – Cuerpo de la solicitud HTTP.

[Link] – Encabezados enviados junto con la solicitud


HTTP.

[Link] – Un objeto de nombre de parámetro y valor.

[Link] – Obtiene el texto después del ? en la ruta de la


solicitud HTTP, como objeto.

44
VALIDACIÓN

45
EXPRESS-VALIDATOR
Es una herramienta que permite validar las
solicitudes de entrada al servidor y
determina si la solicitud es válida o no, qué
datos coinciden según tus propias
validaciones, etc.

46
Enlace de EXPRESS-VALIDATOR

[Link]

47
Para instalar EXPRESS-VALIDATOR

> npm install express-validator

48
Primera Forma
// [Link]
import express from "express";
import {check, validationResult} from "express-validator";

const app = express();


[Link]([Link]());

[Link](
'/insercion',
[
check('nombre','El nombre no puede ir vacio').notEmpty(),
check('email','Eso no parece un email').isEmail(),
check('password','El password no debe menos de 6
caracteres').isLength({min:6})
],
49
(req, res) => {
let resultado = validationResult(req);
//[Link]([Link]());
if (![Link]()) { // Datos incorrectos
return [Link]({
ok: false,
errores: [Link]()
})
}
[Link]({ // Creación exitosa
ok: true,
msg: 'Registro Insertado'
});
});

const puerto = 3001;


[Link](puerto,
() => {[Link](`Servidor en [Link]
});
50
Thunder Client

51
Segunda Forma
// [Link]
import express from "express";
import {check, validationResult} from "express-validator";

const app = express();


[Link]([Link]());

[Link](
'/insercion',
async (req, res) => {
[Link]([Link]);
const {password} = [Link];

52
await check('nombre').notEmpty()
.withMessage('El nombre no puede ir vacio')
.run(req);
await check('email').isEmail()
.withMessage('Eso no parece un email').run(req);
await check('password').isLength({min:6})
.withMessage('El password no debe menos de 6 caracteres')
.run(req);
await check('repetir_password').equals(password)
.withMessage('Los passwords no son iguales')
.run(req);

53
let resultado = validationResult(req);
//[Link]([Link]());
if (![Link]()) { // Datos incorrectos
return [Link]({
ok: false,
errores: [Link]()
})
}
[Link]({ // Creación exitosa
ok: true,
msg: 'Registro Insertado'
});
});

const puerto = 3001;


[Link](puerto,
() => { [Link](`Servidor en [Link]
});

54
Thunder Client

55
Bibliografía
• [Link]
• [Link]

56
GRACIAS

57

También podría gustarte