Express es una infraestructura de aplicaciones web Node.js mínima y flexible que proporciona un conjunto sólido de características para las aplicaciones web y móviles.
Instalación
$ mkdir myapp
$ cd myapp
npm init
para crear un archivo package.json
para la aplicación. Para obtener más información sobre cómo funciona package.json
, consulte Specifics of npm’s package.json handling.
$ npm init
entry point: (index.js)
app.js
o el nombre que desee para el archivo principal. Si desea que sea index.js
, pulse INTRO para aceptar el nombre de archivo predeterminado recomendado.app
y guárdelo en la lista de dependencias. Por ejemplo:
$ npm install express --save
--save
:$ npm install express
Ejemplo Hello world
myapp
, cámbielo y ejecute npm init
. A continuación, instale express
como una dependencia, según se describe en la guía de instalación.myapp
, cree un archivo denominado app.js
y añada el código siguiente:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
La aplicación inicia un servidor y escucha las conexiones en el puerto 3000. La aplicación responde con “Hello World!” para las solicitudes al URL raíz (
/
) o a la ruta raíz. Para cada vía de acceso diferente, responderá con un error 404 Not Found.
$ node app.js
Generador de aplicaciones Express
express
, para crear rápidamente un esqueleto de aplicación.express
con el siguiente mandato:
$ npm install express-generator -g
-h
:
$ express -h
Usage: express [options][dir]
Options:
-h, --help output usage information
--version output the version number
-e, --ejs add ejs engine support
--hbs add handlebars engine support
--pug add pug engine support
-H, --hogan add hogan.js engine support
--no-view generate without view engine
-v, --view add view support (ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade)
-c, --css add stylesheet support (less|stylus|compass|sass) (defaults to plain css)
--git add .gitignore
-f, --force force on non-empty directory
$ express --view=pug myapp
create : myapp
create : myapp/package.json
create : myapp/app.js
create : myapp/public
create : myapp/public/javascripts
create : myapp/public/images
create : myapp/routes
create : myapp/routes/index.js
create : myapp/routes/users.js
create : myapp/public/stylesheets
create : myapp/public/stylesheets/style.css
create : myapp/views
create : myapp/views/index.pug
create : myapp/views/layout.pug
create : myapp/views/error.pug
create : myapp/bin
create : myapp/bin/www
$ cd myapp
$ npm install
$ DEBUG=myapp:* npm start
> set DEBUG=myapp:* & npm start
http://localhost:3000/
en el navegador para acceder a la aplicación.
.
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.pug
├── index.pug
└── layout.pug
7 directories, 9 files
La estructura de la aplicación creada por el generador es sólo una de las muchas formas de estructurar las aplicaciones Express. Puede utilizar esta estructura o modificarla según sus necesidades.
Direccionamiento básico
app.METHOD(PATH, HANDLER)
app
es una instancia deexpress
.METHOD
es un método de solicitud HTTP.PATH
es una vía de acceso en el servidor.HANDLER
es la función que se ejecuta cuando se correlaciona la ruta.
express
denominada app
y que el servidor está en ejecución. Si no está familiarizado con la creación y el inicio de una aplicación, consulte el Ejemplo Hello world.Hello World!
en la página inicial:
app.get('/', function (req, res) {
res.send('Hello World!');
});
/
), la página de inicio de la aplicación:
app.post('/', function (req, res) {
res.send('Got a POST request');
});
/user
:
app.put('/user', function (req, res) {
res.send('Got a PUT request at /user');
});
/user
:
app.delete('/user', function (req, res) {
res.send('Got a DELETE request at /user');
});
Servicio de archivos estáticos en Express
express.static
de Express.express.static
para empezar directamente el servicio de los archivos. Por ejemplo, utilice el siguiente código para el servicio de imágenes, archivos CSS y archivos JavaScript en un directorio denominado public
:
app.use(express.static('public'));
public
:
http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html
express.static
varias veces:
app.use(express.static('public'));
app.use(express.static('files'));
express.static
.express.static
, especifique una vía de acceso de montaje para el directorio estático, como se muestra a continuación:
app.use('/static', express.static('public'));
public
desde el prefijo de vía de acceso /static
.
http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html
express.static
es relativa al directorio desde donde inicia el proceso node
. Si ejecuta la aplicación Express desde cualquier otro directorio, es más seguro utilizar la vía de acceso absoluta del directorio al que desea dar servicio:
app.use('/static', express.static(__dirname + '/public'));
Fuente:
https://expressjs.com/es/