que interesante forma de usar el module.exports 😮
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
En esta clase agregaremos la funcionalidad de marcado de las respuestas como correctas, para esto nos apoyaremos en otro helper de handlebars por lo que haremos primero una refactorización creando un archivo que contenga todos los helpers en una función que retornará el objeto handlebars personalizado.
El tag {#if}{/if}
de handlebars no soporte comparar múltiples condiciones, por lo que tendremos que crear un helper de tipo método de bloque, que tiene una estructura parecida a la siguiente:
handlebars.registerHelper('nombreHelper', ( params..., options ) => {
if( <condición> ) {
// --- renderiza el contenido
return options.fn( this )
}
// --- no renderiza el contenido
return options.inverse( this )
})
Un método de bloque es en esencia un tag personalizado en handlebars, de tipo bloque {#miHelper} ... {/miHelper}
, similar a {#if}{/if}
, {#with}{/with}
, {#each}{/each}
, etc.
Aportes 7
Preguntas 1
que interesante forma de usar el module.exports 😮
✌
Esas subidas de contexto me han resultado algo confusas, se sube de contexto respecto a que?
Si la respuesta tiene saltos de linea y no se vea todo junto 😃
<p class="card-text" style=" white-space: pre-line;">
{{answer.text}}
</p>
No entiendo porqué poner el contexto with user, si lo omitimos fuciona igual, sólo hay que hacer una modificación en las subidas de contexto.
<div class="col-sm text-right">
{{#ifEquals ../question.owner.email ../user.email}}
<a href="" class="btn btn-primary" role="button">Elegir respuesta correcta</a>
{{/ifEquals}}
</div>
'use strict'
const handlebars = require('handlebars')
function registerHelpers() {
handlebars.registerHelper('answerNumber', (answers) =>{
const keys = Object.keys(answers)
return keys.length
})
handlebars.registerHelper('ifEquals', (a, b, options) =>{
if (a === b) {
return options.fn(this)
}
return options.inverse(this)
})
return handlebars
}
module.exports = registerHelpers()
Tambien podriamos hacer esto
"use strict";
const HANDELBARS = require('handlebars');
const Helpers = (() => {
HANDELBARS.registerHelper("answerNumber", (answer) => Object.keys(answer).length) +1000;
return HANDELBARS;
})(HANDELBARS);
module.exports = Helpers;```
de esta manera podríamos registrar cualquier **helper** que se necesite.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.