Express.js

Es un framework minimalista para desarrollar aplicaciones web.
Es uno de los más comúnmente usados cuando se desarrollan aplicaciones con Node.js.
Tiene una gran cantidad de módulos que lo extienden y agregan nueva funcionalidad como poder configurar motores de plantillas, agregar middlewares para autenticación, entre otros.

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

app.get('/', function (req, res) {
  res.send('Hola Express!');
});

app.listen(3000, function () {
  console.log('Servidor escuchando en el puerto 3000!');
});

Hola mundo!

Express generator

También trae un generador de plantillas que soporta una gran cantidad de complementos comúnmente usados en el desarrollo de APIs y aplicaciones web.

$ npm install --global express

$ npm install --global express-generator

$ mkdir test

$ cd test

$ express --git #agrega automáticamente un gitignore de nodejs

 

Routing

Se puede determinar la función a llamar en una ruta específica fácilmente:

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.post('/', function (req, res) {
  res.send('Got a POST request');
});

app.put('/user', function (req, res) {
  res.send('Got a PUT request at /user');
});

app.delete('/user', function (req, res) {
  res.send('Got a DELETE request at /user');
});
/*
 * @example 
 * /users/jdnichollsc/levels/12
 */
app.get('/users/:userId/levels/:levelId', function (req, res) {
  res.send(req.params);
});

Parámetros en la URL

También se pueden utilizar partes de la url como parámetros del request:

Y por query string:

/*
 * @example 
 * /users?userId=jdnichollsc&levelId=12
 */
app.get('/users', function (req, res) {
  res.send(req.query.userId);
  res.send(req.query.levelId);
});

Cuerpo del request

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('user', function(req, res){
  console.log(req.body);
  res.json(req.body);
});

Se debe utilizar un “middleware” o librería que interprete el cuerpo del mensaje, luego estará disponible para usarse el body como un objeto.

Ejercicio

  1. Terminar el tutorial de express en nodeschool.

  2. Programar la API diseñada anteriormente para el sistema de leaderboard.

    1. Crear una aplicación de express sencilla.

    2. Agregar las rutas con los parámetros al router.

    3. Configurar el body parser.

    4. Retornar los valores de dummy definidos a los requests.

    5. Desplegar en heroku

Se recomienda utilizar la integración entre github y heroku, cuando termine cree un release en el commit final. Continuará trabajando en este proyecto más adelante.

Referencias

Made with Slides.com