Workshop Fullstack Javascript
  • Bienvenid@s 👨🏼‍💻👩🏻‍💻
  • Prerequisitos 💻🔧
  • Backend
    • Introducción
      • Configuración Inicial
    • Node.js
    • Express.js
      • Configuración
      • Carpeta API
      • Rutas
    • Mongoose.js
      • Conectando a Mongosse
      • Esquemas y Modelos
      • Métodos
      • Rutas
      • Retos 🕵🏻‍♀️ 💻 🕵🏻‍♂️
    • Passport.js
      • Modelo User
      • Estrategia Local
      • Autenticación Service
      • API users
      • Configuración Passport.js
      • Middleware
      • Retos 🦸🏻‍♀️🕵🏼‍♂️
    • Refactor
    • Despliegue 🚀
  • Frontend
    • ReactJS 💙
      • Configuración Inicial
      • Componentes
      • Pages
      • Rutas
      • Conectando la API
      • Authenticación
      • Despliegue 🚀
    • VueJS 💚
      • Configuración Inicial
  • GraphQL
    • pronto...🤷🏼‍♂️
Powered by GitBook
On this page
  • Routes.js
  • Update app.js

Was this helpful?

  1. Backend
  2. Express.js

Rutas

Las rutas o redireccionamientos hace referencia a la definición de puntos finales de aplicación (URI) y cómo responden a las solicitudes de cliente. Para ver una introducción al direccionamiento.

El siguiente código es un ejemplo de una ruta muy básica.

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

// respond with "hello world" when a GET request is made to the homepage
app.get('/', (req, res) => {
  rres.status(200).json({ message: 'hello wolrd!!' });
});

Como lo hablamos en nuestra sección sobre Express, vamos a manejar una convección llamada Folder-by-feature la cual nos indica que cada carpeta debe contener todo lo necesario para que esa característica funcione.

Ademas en en el punto anterior indicamos que las rutas de cada endpoint contendrá los verbos http mas comunes POST, GET, PUT, DELET, por esta razón vamos a irnos a nuestra carpeta api/helloworld y vamos a crear un archivo index.js que será en el cargado de manejar estos verbos.

api/helloworld/index.js
/**
 * User
 * @author: Cristian Moreno Zuluaga <khriztianmoreno@gmail.com>
 */

const { Router } = require('express');
const controller = require('./helloWorld.controller');

const router = new Router();

// All Verbs
router.get('/', controller.index);

/*
 * If we had other verbs HTTP
router.delete('/:id', controller.destroy);
router.put('/:id/', controller.update);
router.get('/:id', controller.show);
router.post('/', controller.create);
*/

module.exports = router;

Routes.js

Nuestro proyecto tendrá un archivo donde manejaremos todas las rutas de la aplicación con el fin de dar un mejor orden y mantenimiento al código.

Vamos a crear un archivo routes.js en la raíz del proyecto, allí importaremos todas los archivos index.js de que vayamos creando dentro de la carpeta api.

Ejemplo: /api/product, /api/user, /api/customer, etc.

routes.js
/**
 * Main application routes
 * @author: Cristian Moreno Zuluaga <khriztianmoreno@gmail.com>
 */

// Import Endpoints
const helloWorld = require('./api/helloWorld');

module.exports = (app) => {

  // Insert routes below
  app.use('/api/helloworld', helloWorld);
  
  // Next routes
  // Endpoints in plural
  // app.use('/api/users', user);
  // app.use('/api/products', product);
};

Cuando usamos app.use('/api/helloworld', helloworld) estamos diciendolé a express que vamos a usar un middleware para '/api/helloworld' y va será helloworld.

Update app.js

Ahora solo nos falta agregar las rutas a nuestra aplicación para que podamos acceder a ellas, entonces vamos actualizar el archivo app.js con dos nuevas lineas:

app.js
...

// Add this line
const routeConfig = require('./routes');

// Add this line
routeConfig(app);

Finalmente este archivo deberá verse así:

app.js
const express = require('express');
const http = require('http');

const expressConfig = require('./config/express');
// New line
const routeConfig = require('./routes');

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

expressConfig(app);
// New line
routeConfig(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;

Levantamos nuevamente nuestro servidor ejecutando en la terminal node index.js

Recuerda hacer commit de lo visto hasta este punto.

PreviousCarpeta APINextMongoose.js

Last updated 5 years ago

Was this helpful?

Si todo funciona a la perfección, podemos abrir Postman y agregar un llamado GET al endpoint y tendremos una respuesta como esta:

Commit:

http://localhost:8080/api/helloworld
Add the main routes file
/api/helloworld