Git Product home page Git Product logo

node_restserver_basic's Introduction

Plantilla de Webserver Node.js

Una plantilla de un webserver utilizando Express y cors. A partir de este este esqueleto 馃拃 鈿掞笍 podemos dearrollar todo lo necesario para desplegar una aplicaci贸n de NodeJS.

Las rutas y la l贸gica se encuentran separadas.

En la versi贸n actual se a帽aden un par de Schemas para que sirvan de referencia en futuras aplicaciones

Dependencias

  1. Express Nos permite manejar las rutas de nuestro servidor.
  2. cors Es un middleware que nos permite solicitar recursos a una p谩gina web que se encuentre en otro dominio. Si no tenemos el cors configurado.
  3. dotenv Este m贸dulo carga como variables globales lo que introduzcamos en el archivo .env. En esta aplicaci贸n se utiliza para indicar en n煤mero de puerto.
  4. Mongoose
  5. BcryptJS Utilizamos este paquete para encriptar las contrase帽as de los usuarios.
  6. Express-validator Paquete utilizado para validar el email
  7. jsonwebtoken Utilizamos este paquete para la creaci贸n de los tokens necesarios en el proceso de autentificaci贸n con la base de datos. En esta web JWT podemos simular tokens.
  8. google-auth-library Gracias a esta librer铆a integraremos cierta informaci贸n de nuestra cuenta de Google y la utilizaremos para crear usuarios en nuestra aplicaci贸n. Tenemos que hacer un poco de refactorizaci贸n de c贸digo de la doc de Google.
  9. express-fileupload Este paquete nos ayudar谩 a gestionar la subida de archivos.
  10. uuid Esta dependencia ser谩 la utilizada para generar los ids de las imagenes.
  11. Cloudinary Este paquete nos servir谩 para almacenar nuestras imagenes en nuestro repositorio de Cloudinary.

Algunos tips 馃搶

  • Es habitual encontrar toda la l贸gica en el app.js. Aqui se ha creado la clase server para que quede todo m谩s pulcro. Son formas de trabajar, yo prefiero dejar el inicio de mi aplicaci贸n lo m谩s limpio posible.

  • La funcion usersGet espera 3 par谩metros {id, limit, name} Se les da un valor por defecto en caso de que la petici贸n lo los contenga para ayudar a evitar errores de ejecuci贸n.

  • En router.put paso la variable id. Ser谩 en el controlador correspondiente se gestionar谩. En este ejemplo tan solo lo muestro.

  • Normalmente no es una buena pr谩ctica pasar el archivo .env pero en este caso hago una excepci贸n ya que ser谩 donde definamos el puerto por el que funcionar谩 el servidor. Aunque lo correcto ser铆a subir un archivo .example_env.

  • En models/server.js est谩 dividida la l贸gica necesaria para levantar el server en las

    • La funci贸n middleware() donde incluiremos los middlewares que necesite el serviodr.
    • La funci贸n routes() donde incluimos la ruta del html p煤blico (normalmente el directorio public).
    • El proceso listen() necesita el puerto que va a utilizar el servidor

馃憟 Venimos de

node_restserver_basic's People

Contributors

hugolebredo avatar

Watchers

 avatar

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.