Configuración
En todo framework de desarrollo siempre hay un poco de configuración que podemos hacer para trabajar. Cuando hemos usado app.set
estamos configurando Node para algún fin.
Algunos comandos de configuración que podemos usar que hasta ahora no se han mencionado son los siguientes:
// app.js app.set('view cache', true);123 // app.js appset('view cache',true);
Este comando habilita el cacheo de las vistas, esto no nos convendría en un habiente de desarrollo si en uno de producción.
Cuando estas variables de configuración solo aceptan valores “true” o “false” podemos hacer uso del método enable
o disable
.
1 appenable('view cache');
Y esto sería exactamente igual al bloque de código anterior.
Hasta ahora solo hemos utilizado propiedades que son propias de Express, pero también podemos usar set
para asignar cualquier propiedad inventada por nosotros:
1 appset('color themes',true);
Esta propiedad que acabo de inventar podría ser para mostrar distintos colores en mi interfaz dependiendo de la fecha actual, por ejemplo.
Middleware
El framework Express esta construido sobre Connect, otro framework desarrollado por Sencha Labs que permite el uso de middleware en Node.js.
bodyParser
Cuando hemos usado app.use(express.bodyParser());
estamos haciendo uso del middleware. Con esta linea de código decimos que antes de que llegue el mensaje enviado desde el cliente hasta nuestra ruta, sea analizado el contenido del body para poder ser utilizado.
methodOverride
Otro middleware que podemos utilizar es app.use(express.methodOverride());
. Los browser como tal no pueden hacer requests de tipo PUT o DELETE, solo GET y POST. con ‘express.methodOverride’ hacemos posible el soporte de requests tipo PUT o DELETE agregando un campo de tipo ‘hidden’ a nuestro formulario para que pueda ser manejada por nuestras rutas de put o delete.
Por ejemplo:
Nuestro formulario debe tener un campo como este:
// form.html <form action='/updateUser'> ... <input type="hidden" name="_method" value="put" /> </form>123456 // form.html <form action='/updateUser'> <input type="hidden"name="_method"value="put"/></form>
Para que pueda ser llamada la siguiente ruta en el servidor:
app.put('/updateUser', function (req, res, next) { // Codigo aqui });123 appput('/updateUser',function(req,res,next){ // Codigo aqui});
static
También tenemos un middleware llamado static
. Este permite el envío de archivos estáticos desde el servidor, como css, javascripts, imágenes, etc. Se invoca mendiante la siguiente linea de código: app.use(express.static(__dirname + 'public'));
, si tuviéramos una carpeta dentro del proyecto llamada “public” entonces Node buscaría todos nuestros archivos estáticos ahí.
Esta propiedad debería ser llamada de última en nuestra lista de propiedades (“app.use”) ya que podría sobreescribir alguna de nuestras rutas. Por ejemplo, si alguna de nuestras rutas se llama “public/archivo.css” y tenemos también un archivo en esa ruta entonces el archivo se descargaría automáticamente desde el servidor y nunca se ejecutaría el código de nuestra ruta, es por eso que debe ir al final, porque nosotros queremos que tenga prioridad la lógica de ruta.
Otros middleware
En el repositorio de github de Connect podemos encontrar los otros plugins de middleware que podemos utilizar. Aquí dejo la lista completa:
- basicAuth
- bodyParser
- compress
- cookieParser
- cookieSession
- csrf
- directory
- errorHandler
- favicon
- json
- limit
- logger
- methodOverride
- multipart
- urlencoded
- query
- responseTime
- session
- static
- staticCache
- subdomains
- vhost
No dudes en revisar la funcionalidad de cada uno, podrían ser muy útiles y ahorrar tiempo valioso.
Conclusión
En este capitulo estuvimos hablando de los que es el middleware y como utilizarlo en Node.js y Express, espero que les haya sido útil esta información.
Como siempre cualquier duda que surja con gusto podré aclararla si la dejas en los comentarios (más abajo)
Saludos y hasta la próxima.