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

Tips para escalar nuestro proyecto

33/33
Recursos

¡Felicitaciones por terminar el Curso de Node.JS!

Hemos aprendido a utilizar Node para crear nuestro backend, un proyecto de un chat ¡hasta utilizando WebSockets! Darle seguridad a nuestro backend, manejar nuestra base de datos y mucho más.

En esta última clase te enseñaremos algunos tips que te podrán ayudar a mejorar nuestro proyecto.

Sabemos que ha sido un largo camino, pero estamos seguros de que valió la pena. Y recuerda, ¡nunca pares de aprender!.

Aportes 46

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Cuando las variables de configuración que vamos a guardar son algo sensibles: contraseñas, uri para acceso a bases de datos, etc, se suele usar el paquete dotenv.
Para instalarlo basta con ejecutar:

npm i dotenv

.
Ahora tenemos que importar dentro del archivo de más alto nivel, en nuestro caso es server.js:

require('dotenv').config()

.
Y al nivel de server.js necesitamos el archivo .env, ahí escribimos todas las variables que deseen usar. Siempre usando la estructura NAME=VALUE

DB_URI=mongodb+srv://admin:[email protected]/test?retryWrites=true&w=majority
HOST=http://localhost:3000

.
Para usar estas variables simplemente necesitamos escribir process.env.TU_VARIABLE, no hay que importar en ningún otro archivo aparte del server.js
.
Es recomendable escribir el nombre de este archivo dentro de .gitignore y .npmignore para evitar subir esos datos a npm o github. 😎

El pueblo pide mas cursos de Carlos! Genial todo el curso.

Con sinceridad es uno de los mejores profesores que tiene Platzi en materia de desarrollo web. Genial este curso.

Ahora a crear mi propio Backend para poner en práctica lo aprendido

Esta es mi solución para response.js:

const statusMessage = {
    '200': 'Done',
    '201': 'Created',
    '400': 'Invalid format',
    '500': 'Internal error'
};

/**
 * Respuestas exitosas
 */
exports.success = function(req, resp, data, status = 200) {
    const message = statusMessage[status];
    resp.status(status).send({
        error: '',
        body: data || message
    });
}

/**
 * Respuestas con error
 */
exports.error = function(req, resp, data, status = 500, details) {
    console.error(`[response error] ${details}`);
    const message = data || statusMessage[status];
    resp.status(status).send({
        error: message,
        body: ''
    });
}

Si estamos usando git es muy importante agregar el archivo config al ‘.gitignore’ ya que podemos tener información sensible.

Excelente! En el caso de los statusCode y statusMessage creo que se ve más ordenado usando inline if:

  let statusCode = status ? status : 200;
  let statusMessage = message ? message : statusMessages[status];

Genial este curso, creo que debo repasar muchas cosas pues es la primera vez con Node.js
Grande Carlos.

Excelente curso… me gusto mucho y el profe explica mejor aún 😃 lo genial es que te mostró un Frontend y no lo dejo solo en backend y seria… ahora a seguir los cursos de Vue, para ver porque no me funciona el websocket del vue front. XD

:)👍

Hola!! Esta clase esta repetida es la Guardar el fichero en el servidor, falta la clase “Tips para escalar nuestro proyecto”.
Por favor la organizan. Gracias

**Reto **
(gracias!)

const statusMessage = {
    '200': 'Done',
    '201': 'Created',
    '400': 'Invalid Format',
    '500': 'Internal Error'
}

exports.success = function (req, res, message, status) {
    let statusCode = status;
    let statusMessage = message;
    if(!status){
        status = 200;
    }
    if(!message){
        statusMessage = statusMessages[status];
    }
    res.status(statusCode).send({ 
        error: '',
        body: statusMessage
    });
}

exports.error = function (req, res, message, status, details) {
    let statusCode = status;
    let statusMessage = message;
    if(!status){
        status = 500;
    }
    if(!message){
        statusMessage = statusMessages[status];
    }
    res.status(statusCode).send({ 
        error: statusMessage,
        body: '',
    });
}```

Excelente el curso y muy buen profesor, gracias! .

Excelente profesor, uno de mis favoritos en Platzi !!
Por mas viejo que esté el curso, aún se entiende a la perfección.

Excelente curso, aprendi mucho de como empezar en el mundo del backend, hay mucho que aprender aún pero con este curso ya se tiene una visión de como manejarlo de una manera bastante ordenada, clara y profesional, el profe Carlos es increible en la explicación, y los tips son muy practicos.

Les dejo mi repositorio de todo el curso https://github.com/CarGDev/Node-JS

Muchísimas gracias por todo Carlos y al equipo de Platzi por capacitarnos increíblemente bien, saludos apreciables!!

excelente curso, gracias!

genial curso, por fín entendí la verdadera función de un lenguaje backend, con php no me terminaba de quedar claro jajaja

Clase repetida!!!

Un gran curso y un gran profesor. ¡Espero siga dando más cursos en Platzi!

Hago retrospectiva y me alegra demasiado todo lo que he aprendido en este curso. A seguir aprendiendo!

Muy buena intro al mundo back. Felicitaciones!

Muy Bueno el curso. Me encanto !

Un gran curso y un gran profesor, cada día entendiendo más como funciona el backend.

Que sujeto tan agradable!

Excelente gracias

Con un profesor así cualquiera aprende! muchas gracias Carlos!

Genial haber concluido el curso

fue gratificante este curso el profesor explica muy bien!!!

Excelente curso para iniciar con Node, muy buen trabajo Carlos, ahora por el examen.

Re bueno el curso, aprendi muchisimo de node.

Que genial el curso, la arquitectura utiizada, la parte de WebSockets me encantó, muy buen profesor

Excelente curso Gracias carlos

MUCHAS MUCHAS Gracias por este curso. He abierto un amplio panorama con el mundo de NODEjs

Muy buen curso, entendí muchas cosas que había intentado aprender antes. Hay que practicar para no olvidar lo que aprendimos.

super, 😉

const config = {
    dbURL: process.env.DB_RRL || 'mongodb+srv://db_user:alotWdGOx73njYqE@cluster0-6afsn.mongodb.net/test?retryWrites=true&w=majority',
    port: process.env.PORT || 3000,
    host: process.env.HOST || 'http://localhost:',
    publicRoute: process.env.PUBLIC_ROUTE || 'app',
    filesRoute: process.env.FILES_ROUTE || 'files'
}

module.exports = config;

excelente curso

Estupendo curso, ahora tengo una mayor comprensión de cómo hacer el Backend de una aplicación usando Node.js, muchas gracias por las explicaciones instructor Carlos y demás miembros de Platzi.

Este sí que es un verdadero curso ❤️

Excelente curso 👌!!!

Excelente curso de mi tocayo! Muy claro de inicio a fin, muy buen contenido y profesionalismo!

Como haríamos para desplegar esto en un hosting como Heroku o vercel ?

Buen comienzo de nodejs =) Gracias

Excelente curso! Gracias, Carlos 🙌🏼

megusta mucho utilizar https://www.npmjs.com/package/babel-plugin-transform-define ya que iual puedes manejar variables de entrono

Les comparto mi config.js 😄

require("dotenv").config();

const config = {
  dev: process.env.NODE_ENV !== "production",
  port: process.env.PORT || 3000,
  cors: process.env.CORS,
  dbUser: process.env.DB_USER,
  dbPassword: process.env.DB_PASSWORD,
  dbHost: process.env.DB_HOST,
  dbName: process.env.DB_NAME,
  publicRoute: process.env.PUBLIC_ROUTE || "/app",
  filesRoute: process.env.FILES_ROUTE || "/files",
};

module.exports = { config };

Muy buen profesor y un curso genial.