Introducción

1

Qué necesitas para este curso y qué aprenderás sobre Node.js con Hapi

2

Conceptos principales de hapi y creación de nuestro primer servidor

3

Breve historia y estado actual

Creando un sitio básico con Hapi

4

El objeto h, response y sus herramientas

5

Uso de plugins - Contenido estático

6

Plantillas con Handlebars

7

Renderizado de vistas - Layout y template del home

8

Recibiendo parámetros en una ruta POST - Creación del registro

9

Definir una mejor estructura con buenas prácticas en Hapi

10

Validando la información - Implementando Joi

11

Introducción a Firebase

12

Creando un modelo y guardando en firebase

13

Implementando el login y validación del usuario

14

Autenticación de usuarios - Cookies y estado

15

Manejando errores

16

Visualización de errores

17

Controlar el error 404 en inert y el error de validación

18

Repaso - Creación del modelo y controlador para preguntas

19

Repaso - Creación de las rutas para crear preguntas

20

Listar las últimas preguntas en el home

Aplicacion de conceptos avanzados

21

Enrutamiento avanzado - visualizando una pregunta

22

Enrutamiento avanzado - respondiendo una pregunta

23

Generando la lógica de la plantilla según si es creador o contribuidor

24

Métodos de servidor - respuesta correcta

25

Usando métodos de servidor

26

Manejo del caché - Agregando el home al caché

27

Procesamiento de archivos - Aceptando imágenes

28

Logging con Good - Monitoreando el servidor

29

Creación de plugins - Teoría

30

Creación de plugins - Implementando un API REST

31

Estrategías de autenticación - Asegurando el API REST

32

Seguridad básica - Asegurando el servidor contra CSRF

33

Seguridad básica - Asegurando el servidor contra XSS

Herramientas de desarrollo

34

Depuración del proyecto

35

Ecosistema de Hapi

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Usando métodos de servidor

25/35
Recursos

Usar los métodos de servidor que creamos en la clase pasada es tan simple como acceder a req.server.methods:

req.server.methods.<nombre método>( args )

Esto lo hacemos en el controlador y de allí continuamos el ciclo normal de las rutas como hemos visto hasta ahora.

Aportes 6

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

para evitar duplicar código validando si el usuario esta autentica use middlewares de la siguiente forma:

  1. cree un archivo middleware.js en el directorio lib
// lib/middlewares.js
'use strict'

function isAuth (req, h) {
  if (!req.state.user) {
    return h.redirect('/login').takeover()
  }

  return h.continue
}

module.exports = {
  isAuth
}
  1. Añadí el middleware a las rutas que solo se pueden acceder autenticado
// routes.js
const middlewares = require('./lib/middlewares')
...
module.exports = [
  ...
  {
    method: '...',
    path: '...',
    handler: ... ,
    options: {
      pre: [
        {method: middlewares.isAuth}
      ]
    }
  },
  ...
]

Algo que no me gusta mucho, y que estoy seguro hay maneras un poco más elegantes de resolver, es el uso constante del bloque try / catch.

Por que usas async y await ? eso no degrada la funcion …?
Que tan recomendado es usarlos…?

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
}

module.exports = {
    setAnswerRight: setAnswerRight
}

¡Está genial la plataforma que estamos creando!! 😎🤩