Express
HBS
-
Crear un servidor básico con rutas y archivos estáticos en Express supone:
- Requerir Express
const express = require('express')
- Instanciar la aplicación a partir de Express
const app = express()
- Incluir el middleware de directorio con archivos estáticos
publicapp.use(express.static('public'))
- Enrutar
app.get('/', (req, res) => res.send('<h1>Hi there!</h1>'))
- Levantar el servidor
app.listen(3000, () => console.log("Server listening on port 3000"))
- Requerir Express
-
Enrutar supone hacer uso del método
.get()o.post()de la aplicación instanciada, recibiendo como argumentos:- Endpoint en formato de string.
- Callback con los parámetros por defecto
req(petición) yres(respuesta).
- El módulo global Nodemon, instalado mediante el comando
npm i nodemon --global, atiende a los cambios en un archivo, siendo iniciado mediante:nodemon: escucha los cambios sobre el archivo indicado como entry point (propiedadmaindepackage.json).nodemonnombre_archivo: escucha los cambios realizados en el archivo indicado.
- El objeto
responsedispone de tres métodos para mostrar información en el cliente:.send(): muestra el código pasado como argumento en el cliente..sendFile(): muestra en el cliente el archivo enlazado mediante el path absoluto argumentado..render(): renderiza la vista cuyo nombre sea argumentado.app.get('/', (req, res) => res.render('nombre-vista'))
- El método
.render()recibe dos argumentos:- Nombre del archivo handlebars, sin extensión
- Objeto con datos (opcional)
- Los archivos de HBS interpolan propiedades con dos llaves (solo mostrar) o tres (renderizar)
- El layout debe tener el nombre
layout.hbs - Debe contener la información dinámica en
{{{ body }}}
- Para usar partials es necesario:
- Requerir
hbs - Registrar su directorio a través de
hbs.registerPartials(path) - Incluir los parciales (sin guiones medios en el nombre) en el directorio registrado (
views/partials)
- Requerir
- Un partial puede ser incluido en un hbs mediante al sintaxis
{{> partialName}}
- El comando
nodemon -e js,hbs,css app.jslevanta Nodemon con alcance de parciales.