Y esos ojitos?
Introducción
Qué necesitas para este curso y qué aprenderás sobre Node.js con Hapi
Conceptos principales de hapi y creación de nuestro primer servidor
Breve historia y estado actual
Creando un sitio básico con Hapi
El objeto h, response y sus herramientas
Uso de plugins - Contenido estático
Plantillas con Handlebars
Renderizado de vistas - Layout y template del home
Recibiendo parámetros en una ruta POST - Creación del registro
Definir una mejor estructura con buenas prácticas en Hapi
Validando la información - Implementando Joi
Introducción a Firebase
Creando un modelo y guardando en firebase
Implementando el login y validación del usuario
Autenticación de usuarios - Cookies y estado
Manejando errores
Visualización de errores
Controlar el error 404 en inert y el error de validación
Repaso - Creación del modelo y controlador para preguntas
Repaso - Creación de las rutas para crear preguntas
Listar las últimas preguntas en el home
Aplicacion de conceptos avanzados
Enrutamiento avanzado - visualizando una pregunta
Enrutamiento avanzado - respondiendo una pregunta
Generando la lógica de la plantilla según si es creador o contribuidor
Métodos de servidor - respuesta correcta
Usando métodos de servidor
Manejo del caché - Agregando el home al caché
Procesamiento de archivos - Aceptando imágenes
Logging con Good - Monitoreando el servidor
Creación de plugins - Teoría
Creación de plugins - Implementando un API REST
Estrategías de autenticación - Asegurando el API REST
Seguridad básica - Asegurando el servidor contra CSRF
Seguridad básica - Asegurando el servidor contra XSS
Herramientas de desarrollo
Depuración del proyecto
Ecosistema de Hapi
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Adrián Estrada
Internamente Hapi maneja el caché de las aplicaciones usando un módulo llamado CatBox que ya viene integrado en el core del framework. Este módulo utiliza varios modos de caching; por defecto, Hapi implementa el caché de memoria.
También es posible ampliar las funcionalidades del uso de caché en nuestras aplicaciones instalando y configurando otros módulos disponibles como: Redis, MemCache, etc.
Para habilitar el uso de caching del lado del cliente con Hapi basta con agregar la propiedad options en la definición de cada ruta y definir el tiempo de expiración con expiresIn y el tipo de privacidad con privacy.
...
'options': {
'expiresIn': <duracion>, // en milisegundos
'privacy' : <tipo privacidad>
}
...
Nos apoyaremos en los métodos de servidor que aprendimos en clases anteriores para definir el uso de caché en el backend de nuestra aplicación, ya que Hapi permite hacer caching del resultados de este tipo de métodos al momento de registrarlos en el script principal:
server.method( '<nombre método>', methods.<metodo>, {
'cache': {
'expiresIn': <duracion>,
'generateTimeout': <timeout>
}
Aportes 5
Preguntas 3
Y esos ojitos?
creo que no notaron que en el método getLast(), se establece como parámetro “amout” y debería ser “amount”, además de esto no se esta pasando ese argumento al modelo en por lo que siempre va traer 10 aunque le pases otro argumento en controlador.
el método debería quedar así:
async function getLast(amount) {
let data
try {
data = await questions.getLast(amount)
} catch (error) {
console.error(error)
}
return (data)
}
Compañer@s CatBox toca instalarlo aparte. Ahora es: @hapi/catbox
Saludos!
😮👌
methods.js
'use strict'
const questions = require('../models/index').questions
async function setAnswerRight (questionId, answerId, user) {
let result
try {
result = await questions.setAnswerRight(questionId, answerId, user)
} catch (error) {
console.error(error)
return false
}
return result
}
async function getLast(amount) {
let data
try {
data = await questions.getLast(10)
} catch (error) {
console.error(error)
}
console.log('Se ejecuto el metodo')
return data
}
module.exports = {
setAnswerRight: setAnswerRight,
getLast: getLast
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?