normalmente dentro de las convenciones del mvc no es al revés? (modelos en singular y controladores en plural)
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
En esta clase tomaremos la sección de preguntas de nuestro proyecto para hacer un repaso de lo aprendido hasta ahora.
<main>
...
</main>
y lo extraemos a un archivo de handlebars en la carpeta /vistas
questions.js
en la carpeta /models
class MiModelo {
constructor ( db ) {
this.db = db
this.ref = this.db.ref('/')
this.collection = this.ref.child('entidad')
}
async miMetodo( args ) {
// --- instrucciones
return key
}
}
module.exports = MiModelo
En el index.js
de la carpeta /models
, importamos cada archivo de modelo luego de la declaración de la base de datos de Firebase, y los exportamos con new para que no haya duplicados.
Creamos el archivo de controlador en la carpeta /controllers
con la función que va a retornar la vista, e importamos el modelo creado a través del index. Al finalizar, exportamos la función.
Aportes 5
Preguntas 0
normalmente dentro de las convenciones del mvc no es al revés? (modelos en singular y controladores en plural)
Mientras tanto en vez de responder con return h.response(`Pregunta creada con el ID ${result}`)
, pueden redireccionar al home
return h.redirect('/')```
✌
'use strict'
const questions = require('../models/index').questions
async function createQuestion(req, h) {
let result
try {
result = await questions.create(req.payload, req.state.user)
returnh.response(`Pregunta creada con el ID: ${result}`)
console.log(`Pregunta creada con el ID: ${result}`)
} catch (error) {
console.error(`Ocurrio un error: ${error}`)
return h.view('ask', {
title: 'Crear pregunta',
error: 'Problemas creado la pregunta'
}).code(500).takeover()
}
}
module.exports = {createQuestion: createQuestion}
Es necesario mantener los archivos html en la carpeta public?
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?