Git Product home page Git Product logo

notes-app-backend's Introduction

Arquitectura MERN

En el desarrollo web existen diferentes tecnologías que permiten crear páginas de manera interactiva. Todos conocemos HTML, CSS, JavaScript, jQuery, PHP, asp.net, python o java. Pero en el desarrollo de aplicaciones full-stack (fusión de un frontend y todas las cosas que hace un backend) Javascript juega un papel importantisimo.

Es muy común utilizar una single-page applications , es decir una pagina web capaz de interactuar de manera dinámica con el usuario y que solo renderize la página actual con los datos pedidos. De esta renderización se encargarán React, Angular o Vue. Según la biblioteca utilizada estaremos creando una aquitectura MERN, MEAN o MEVN. La gestión de las peticiones las realizarán el resto de tecnologías Mongo, Node y Express.

Con todo esto ya sabemos a que corresponden las siglas de MERN

  • MongoDB — Base de datos de documentos.
  • Express.js — Node.js web framework (back-end).
  • React.js — Un framework de Javascript desde el punto de vista del cliente (front-end).
  • Node.js — El servidor web de JavaScript (entorno de ejecución).

Las operaciones esenciales utilizadas en ete tipo de aplicaciones son las denominadas CRUD (Create, Read, Update, Delete). Esto facilida a la arquitectura MVC (Model-View-Controller) que trabaje de forma elegante.

Let’s split the full stack as front-end and back-end application.

Node.js

Node.js es un entorno de ejecución de JavaScript. Es la pidra angular sobre la que gira todo el back-end. Sobre este entorno ejecutaremos Express.js y el resto de dependencias.

Express.js

Si Node.js es simplemente un entorno de ejecución ¿Como se comunica el cliente con el servidor? ¿Como gestiona el servidor una petición (request) y envía respuestas? Ese es el trabajo de Express.js

Es un framework que corre sobre Node.js que provee un conjunto de librerias para apliaciones web.

Por ejemplo. Si un cliente necesitara almacenar algún dato en una base de datos, entonces el cliente enviaría una petición con los parámetros apropiados al servidor. Esos parámetros serán evaluados por Express.js antes de enviarlos a la base de datos.

Para poder hacer esto es necesario crear dentro de Express.js 2 figuras ROUTES y CONTROLLERS

Router

El Router recogerá la petición (request) que venga de React.js y la enviará al controlador que le corresponda para que la evalue. dentro de cada Router debe también inyectar los middelwares necesarios a la petición y comprobar si existe algún error

Controller

Los controladores evaluarán y ejecutarán las peticiones dadas por el Router. Será el encargado de comunicar si se ha producido algún error en la comunicación con la base de datos o si todo ha ido bien.

MongoDB - Base de datos

MongoDB es una base de datos No-SQL. Es decir es una base de datos no relacional lo que significa que almacena los datos en forma de documentos JSON. Esto quiere decir que se ajusta muy bien para guardar y gestionar información desestructurada.

¿Cómo nos vamos a comuncar con MongoDB? Gracias a un paquete llamado mongoose. Este nos permitita crear un modelo de datos, generar un esquema que será utilizado para darle una forma a los datos que enviemos a nuestra base de datos.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.