Conocer y comprender c贸mo se realizan las conexiones hacia los servidores a trav茅s de internet y sus implicaciones en el desarrollo de servidores

1

Bienvenida y presentaci贸n del curso

2

Qu茅 es Node y c贸mo instalarlo

3

驴Qu茅 son y c贸mo se usan las peticiones HTTP?

4

M茅todos, cabeceras y estados

5

Cuerpo y query de la petici贸n

Crear un servidor HTTP en Javascript, y comenzar a escuchar y responder peticiones desde un cliente .

6

Crear un servidor HTTP desde NodeJS

7

驴C贸mo pueden venir las peticiones?

8

Recibir informaci贸n desde el cliente: Body y Query

9

Informaci贸n contextual: Leer las cabeceras

10

Tipos de respuesta: Vac铆a, plana, con datos y estructurada

11

Respuestas coherentes

12

Servir archivos est谩ticos

13

Errores: C贸mo presentarlos e implicaciones en la seguridad

Comprender y desarrollar la arquitectura b谩sica de un backend en NodeJS, y comunicarse entre m贸dulos

14

Conceptualmente: Rutas, controladores y bases de datos

15

Rutas y capa de red: Responsabilidades y l铆mites

16

Controladores: Definiendo la l贸gica de negocio

17

Almacenando la informaci贸n en una base de datos

Utilizar una base de datos para definir, modelar, almacenar y recuperar la informaci贸n de nuestra aplicaci贸n

18

Tipos de Bases de Datos: Relacionales y No Relacionales

19

Crear y Configurar tu Base de Datos con MongoDB

20

MongoDB: Almacenar y leer datos

21

MongoDB: Actualizar datos

22

MongoDB: Consultar datos

23

MongoDB: Eliminar Datos

24

Gestionar conexiones a la base de datos desde la API

Uso de entidades para crear aplicaciones escalables

25

Escalando la arquitectura: M煤ltiples entidades

26

Relacionando nuestras entidades

27

C贸mo recibir ficheros desde NodeJS

28

Guardar el fichero en el servidor

Conocer el protocolo de websockets, e implementar comunicaci贸n cliente/servidor con SocketIO.

29

WebSockets: Qu茅 son, por qu茅 son interesantes y c贸mo usarlos

30

Manejo de Websockets con NodeJS

31

Conectar la API al servidor de WebSockets

Revisi贸n de lo aprendido, y pr贸ximos pasos

32

Revisi贸n y pr贸ximos pasos

33

Tips para escalar nuestro proyecto

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Tipos de respuesta: Vac铆a, plana, con datos y estructurada

10/33
Recursos

Aportes 27

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Con cada paso estoy mas cerca del Mern Stack 馃槑馃槑

Muy bien explicado Carlos, para los que estamos de cero con NODE JS esta genial. Gracias 馃槂

res.send();  //vacia
res.status(201).send('Hola ' + req.body.name);  //plana
res.status(201).send({    //Estructurada - array, objetos
        error: '',
        body: 'Creado correctamente'
    });

Tipos de respuestas

Hay distintos tipos de respuestas.

  • Vacias
    Estas como se indica estan vacias y no retornaran nada en el cuerpo
  • Planas
    Es escribir hardcode directamente
  • Con datos
  • Estructuradas
    Es de volver a manera de arrays u objetos.

De esta manera podemos trabajar con los codigos de status que queramos, con respuestas vacias, podemos mandar un mensaje, o un array u objeto.

Estas son todas las formas de enviar una respuesta desde el servidor hacia el cliente.

No estoy seguro, pero divid铆 mi proyecto de la siguiente manera:

- /admin
	-/routes
		adminRoutes.js
- /node_modules
package-lock.json
package.json
server.js

Y el c贸digo quedo as铆

<server.js />

const adminRoutes = require('./admin/routes/adminRoutes');

adminRoutes.listen(3000);
console.log('Todo OK')

<adminRoutes.js />
const express = require('express');
const bodyParser = require('body-parser');
const router = express.Router();

var adminRoutes = express();
adminRoutes.use(bodyParser.json());
adminRoutes.use(router);


router.get('/message', function(req, res){
    console.log(req.headers);
    res.header({
        'prueba': 'prueba'
    });
    res.send('Lista de mensajes');
});

router.delete('/message', function(req, res){
    console.log(req.query);
    console.log(req.body);
    res.send(`Mensaje ${req.body.text} eliminado correctamente`);
});


module.exports = adminRoutes;

Si alguien lee esto, me podr铆an decir que tal esta?

Para enviar una respuesta JSON, lo ideal es hacerlo conres.json()

Es muy importante dar un tipo de respuesta, ya que permite que el frontend (cliente) reciba esta respuesta para si pintarla en el proyecto ya sea un error o un mensaje dependiendo de la peticion鈥 馃槂 馃槃

Genial!! me encanta este curso!!

router.post('/message', (req, res) => {
    console.log(req.query);
    console.log(req.body);
    res.status(201).send([{error: '', body: 'creado correctamente'}]);
    // res.send(`Mensaje ${req.body.text} a帽adido correctamente`);
});

鈥淎hora vamos a ponerle un poco de sentido a todo esto porque estamos devolviendo cualquier cosa y de esta forma es muy dif铆cil tener un protocolo de comunicaci贸n.鈥

Mi c贸digo!

const express = require('express');
const bodyParser = require('body-parser');
const router = express.Router();

var app =  express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false }));
app.use(router);

app.get('/headers', (req, res) => {
    console.table(req.headers)
    res.header({
        'custom-header' : 'Valore personalizado para el cliente'
    })
    res.send(req.headers);
});
app.post('/pruebas', (req, res) => {
    console.log(req.query);
    console.log(req.body);
    res.send('Datos regresados '+ req.body.text +' correctamente');
});
app.post('/', (req, res) => {
    res.send('Que ondas Soy tu primer petici贸n con POST');
});

app.delete('/delete', (req, res) => {
    console.log(req.query);
    console.log(req.body);
    res.status(200).send([{
        'error': null,
        'body': 'Ejecutado correctamente!'
     }]);
});
app.listen(3000);
console.log('La aplicaci贸n esta escuchando en pueto:3000');

Cuando se accede a un servicio que en realidad no va a retornar nada, se puede retornar un status al igual que un objeto un array o texto plano.

res.status(2000).sed(AQUI VA EL OBJETO, ARRAY O TEXTO PLANO);

Me encanta, vamos bien

Todo bien hasta ahora !!
a un paso de ser Mevn Stack !!

Estupenda explicaci贸n instructor Carlos, queda claro c贸mo podremos retornar respuestas con el uso de res.status() y si queremos a帽adirle m谩s informaci贸n le agregamos la funci贸n .send() con los datos adicionales.

Tipos de respuesta! interesante concepto

Este profe explica super bien ojala en el futuro haga mas cursos

Pregunta de examen:
驴Se puede enviar s贸lo un c贸digo de estado 200 en la response?

router.post('/message',function(req,res){
    res.status(201).send(jsonRes(true,201,'Messaje wass create',{id:1213},'/message',req.body,METHODS.post));
});


function jsonRes(success,http_code,message,data,url,bodyReq,method){
    return {success:success,http_code:http_code,message:message,data:data,url:url,bodyReq:bodyReq,method:method}
}

const METHODS = {post:'post',delete:'delete',get:'get',put:'put'}

Felicidades muy buen curso

const express = require('express');
const router = express.Router();
const bodyParser = require('body-parser')

var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(router);

router.get('/message', function(req, res){
    console.log(req.headers);
    res.header({
        "custom-header": "Nuestro valor personalizado"
    })
    res.send('Lista de mensajes');
});

router.post('/message', function(req, res){
    console.log(req.body);
    console.log(req.query);
    res.status(201).send([{'error': '', 'body': 'Creado correctamente'}]);
});

app.listen(3000);
console.log('La aplicaci贸n esta escuchando en http://localhost:3000')```

Todo muy claro !!!

Me encanta, vamos bien

Excelente todo esto 馃槃

Excelente curso鈥 Felicitaciones Carlos鈥

Adoro este curso.

Este men explica genial !!!