Express.js

"Fast, unopinionated, minimalist web framework for Node.js"

Express.js

Express es un marco de aplicaciĂłn web Node.js mĂ­nimo y flexible que proporciona un conjunto robusto de caracterĂ­sticas para aplicaciones web.

Con una gran cantidad de métodos de utilidad HTTP y middleware a su disposición, crear una API robusta es rápido y fácil.

El primer paso para implementar un sitio web moderno es la construcciĂłn de un API REST que podemos consumir desde una aplicaciĂłn web, mobile o nativa.

Una API RESTful es aquella que emplea todos los verbos HTTP (GET, POST, PUT y DELETE mayormente) Como ejemplo para este tutorial, desarrollaré una aplicación CRUD (Create/Read/Update/Delete) que utiliza todos los verbos HTTP, para mostrar cómo trabaja. Vamos allá!

Middleware

Middleware es una función que sigue convenciones específicas. En este proyecto utilizaremos varios middlewares propios y otros más instalados como dependencias.

Estructura del proyecto

Antes de comenzar a instalar las dependencias necesarias para nuestro proyecto quiero mostrar cĂłmo sera la estructura de este proyecto para que te familiarices y puedas entender mejor este taller.

Cada aplicación necesita ajustes de configuración y la mayoría de los lenguajes de programación / ecosistemas tiene algún tipo de soporte y convención por defecto para él.

  • La mayorĂ­a de las aplicaciones Java se basan en archivos .properties;

  • .Net tiene sus archivos estándar app.config y web.config;

  • Ruby on Rails carga la configuraciĂłn desde config/application.rb, Initializers and After-initializers;

  • Node.js no tiene una forma estándar de administrar estos ajustes, pero hay muchas opciones disponibles.

Esta será la estructura base de nuestro proyecto, esta se denomina Folder-by-feature

backend-js-shopping
├── api
│    ├── helloWorld
│    │    ├── helloWorld.controller.js
│    │    └── index.js
│    ├── product
│    │    ├── product.controller.js
│    │    ├── product.model.js
│    │    └── index.js
│    └── user
│         ├── user.controller.js
│         ├── user.model.js
│         └── index.js
├── auth
│    ├── facebook
│    ├── google
│    ├── local
│    │    ├── passport.js
│    │    └── index.js
│    ├── auth.service.js
│    └── index.js
├── config
│    ├── environment
│    │    ├── development.js
│    │    ├── production.js
│    │    ├── shared.js
│    │    └── index.js
│    ├── express.js
│    └── local.env.js
├── app.js  
├── routes.js   
└── index.js

Instalar Express.js

Ahora instale Express en el directorio backend-js-shopping y guárdelo en la lista de dependencias.

npm install express --save

Esto nos dará la partida para comenzar a desarrollar nuestro proyecto de Node.js con Express.js para crear la API de todo nuestro proyecto de carrito de compras.

Servidor con Express.js

Basados en la estructura de carpetas anterior, vamos a crear un nuevo archivo llamado app.js en toda la raíz del proyecto. Este archivo contendrá el siguiente código:

app.js
/**
 * Main application file
 * @author: Cristian Moreno Zulauaga <khriztianmoreno@gmail.com>
 */

const express = require('express');
const http = require('http');

// Setup server
const app = express();
const server = http.createServer(app);

const config = {
  port: 8080,
  ip: '127.0.0.1',
};

// Start server
function startServer() {
  app.shoppingCartBK = server.listen(config.port, config.ip, () => {
    console.log(`Express server listening on ${config.port}, in ${app.get('env')} mode`);
  });
}

setImmediate(startServer);

// Expose app
module.exports = app;

Por último para esta primera parte sobre Express.js vamos a crear un nuevo archivo llamado index.js y este será la entrada del proyecto.

index.js
/**
 * Export the application
 * @author: Cristian Moreno Zulauaga <khriztianmoreno@gmail.com>
 */
module.exports = require('./app');

Ejecutar servidor

Con la configuraciĂłn anterior ya podemos lanzar nuestra aplicaciĂłn, solo debemos correr en la terminal:

# RUN index file
node index.js

# Output >>> Express server listening on 8080, in development mode

En la siguiente secciĂłn veremos cĂłmo iniciar a configurar Express.js de una forma mas profesional.

Last updated

Was this helpful?