Conceptos básicos de Express.js:una descripción general esencial de Express.js

Express.js es un marco increíble para proyectos de Node.js y se utiliza en la mayoría de estas aplicaciones web. Desafortunadamente, faltan tutoriales y ejemplos sobre cómo escribir un buen código listo para producción. Para mitigar esta necesidad, lanzamos Express.js Guide:The Comprehensive Book on Express.js. Sin embargo, todo comienza desde lo básico, y por esa razón le daremos una muestra del marco en esta publicación, para que pueda decidir si desea continuar con el aprendizaje.

Instalación de Express.js

Suponiendo que descargó e instaló Node.js (y NPM con él), ejecute este comando:

$ sudo npm install -g [email protected]

Interfaz de línea de comandos de Express.js

Ahora podemos usar la interfaz de línea de comandos (CLI) para generar nuevas aplicaciones Express.js:

$ express -c styl expressfun
$ cd expressfun && npm install
$ node app

Abra el navegador en http://localhost:3000.

Aquí está el código completo de expressfun/app.js si no tiene tiempo para crear una aplicación ahora mismo:

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

app.get('/', routes.index);
app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

Rutas en Express.js

Si abre el expressfun/app.js , verás dos rutas en el medio:

...
app.get('/', routes.index);
app.get('/users', user.list);
...

El primero básicamente se ocupa de todas las solicitudes a la página de inicio, por ejemplo, http://localhost:3000/ y el último de solicitudes a /users , como http://localhost:3000/users . Ambas rutas procesan las URL sin distinción entre mayúsculas y minúsculas y de la misma manera que con las barras inclinadas finales.

El propio controlador de solicitudes (index.js en este caso) es sencillo:cada cosa de la solicitud HTTP está en req y escribe los resultados en la respuesta en res :

exports.list = function(req, res){
  res.send("respond with a resource");
};

Middleware como la columna vertebral de Express.js

Cada línea sobre las rutas es un middleware:

app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

El middleware es un paso a través de funciones que agrega algo útil a la solicitud a medida que viaja a lo largo de cada uno de ellos, por ejemplo, req.body o req.cookie . Para obtener más escritos sobre middleware, consulte Introducción a Express.js:parámetros, manejo de errores y otro middleware.

Configuración de una aplicación Express.js

Así es como definimos la configuración en una aplicación Express.js típica:

app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');

Una configuración ordinaria implica un nombre (por ejemplo, views ) y un valor (por ejemplo, la ruta a la carpeta donde se encuentran las plantillas/vistas). Hay más de una forma de definir una determinada configuración, por ejemplo, app.enable para banderas booleanas.

Jade es Haml para Express.js/Node.js

El motor de plantillas de Jade es similar a Haml de Ruby on Rails en la forma en que usa espacios en blanco y sangría, por ejemplo, layout.jade :

[Nota al margen]

Leer publicaciones de blog es bueno, pero ver cursos en video es aún mejor porque son más atractivos.

Muchos desarrolladores se quejaron de la falta de material de video de calidad asequible en Node. Es una distracción ver videos de YouTube y una locura pagar $ 500 por un curso de video de Node.

Visite Node University, que tiene cursos de video GRATUITOS en Node:node.university.

[Fin de la nota al margen]

doctype 5
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
  body
    block content

Aparte de eso, es posible utilizar código JavaScript completo dentro de las plantillas de Jade.

Conclusión sobre el marco Express.js

Como ha visto, es fácil crear aplicaciones web MVC con Express.js. El marco también es espléndido para las API REST. Si está interesado en ellos, visite el Tutorial:Node.js y MongoDB JSON REST API server with Mongoskin and Express.js and Intro to Express.js:Simple REST API app with Monk and MongoDB.

Si desea saber cuáles son los otros middlewares y configuraciones, consulte los documentos de API de Express.js, los documentos de Connect y, por supuesto, nuestro libro:Guía de Express.js. Para aquellos que ya están familiarizados con algunos conceptos básicos de Express.js, recomiendo pasar por ExpressWorks, un taller automatizado de Express.js.