Tutorial de Express

Ejemplos sencillos


Express is a routing and middleware web framework that has minimal functionality of its own: An Express application is essentially a series of middleware function calls.

Middleware functions are functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle. The next middleware function is commonly denoted by a variable named next.




The Request Object

The req object represents the HTTP request and has properties for the request query string, parameters, body, HTTP headers, and so on.

app.get('/user/:id', function(req, res) {
  res.send('user ' +;

Sirviendo varias rutas con un solo middleware

En Express es posible servir varias rutas en un sólo middleware usando la notación :string_sin_dos_puntos. En ese caso la correspondiente cadena queda en req.params:

// Supongamos que se visita con GET la ruta /usuario/pepe
app.get('/usuario/:id', function (req, res) {
  console.log(req.params); // { id: "pepe" }
  res.send('USUARIO: '+( || 'unknown' )); // USUARIO: pepe

Cuando se visita /usuario/pepe el valor de será pepe.

Es posible también usar una expresión regular para limitar el matching:

// Supongamos que se visita con GET la ruta /mongo/input1.csv
get('/mongo/:ejemplo([a-zA-Z_]\w*\.csv)', function(req, res) { 
  console.log(req.params.ejemplo); /* input1.csv */
  /* ... Consultar la base de datos y retornar contenidos de input1.csv ... */

There's another way to do this. We can execute a function for a specific parameter before a route function executes. Let's rewrite our previous example using app.param.

app.param('ejemplo', function (req, res, next, ejemplo) {  
  if (ejemplo.match(/^[a-z_]\w*\.csv$/i)) { 
      req.ejemplo = ejemplo;
  } else { 
      next(new Error(`<${ejemplo}> does not match 'ejemplo' requirements`));
      /* Error: <input1.csx> does not match 'ejemplo' requirements at app.js:85:12 */

// Supongamos que se visita con GET la ruta /mongo/input1.csv
app.get('/mongo/:ejemplo', function(req, res) { 
  console.log(req.params.ejemplo); /* input1.csv */
  console.log(req.ejemplo);        /* input1.csv */

  /* ... Consultar la base de datos y retornar contenidos de input1.csv ... */
  • app.param is an amazing function and can be really handy for checking or parsing parameters.
  • Remember to pass the parameter as 4th function parameter though!

  • next() is a function passed as third parameter to a route / param function.

  • When executed it will take you to the next middleware / route.
  • If you give next a parameter such as new Error() or just a string, it will show the user an error.

Para mas detalles sobre routing estudie los ejemplos de routing en Express en este repo.

Express Generator

results matching ""

    No results matching ""