Cursos / Informática para Internet / Desenvolvimento Backend / Aula

arrow_back Aula 11 - implementando interface em EJS

Manipulando os dados para apresentação


Os dados do banco já estão sendo capturados, porém, em um formato não usual para mostrar ao usuário, e também existem informações que não devem ser exibidas.

Tratando os dados

Para remover os dados desnecessários, será implementada uma função que irá deletar os dados que não precisam ser retornados para a criação da página.

Agora, já temos os dados retornados. No entanto, ainda é preciso enviar datas e, além de enviá-las, transformá-las para o formato que deve ser exibido no layout. Para tratar disso, instale a biblioteca Moment.js pelo comando:

    npm install moment --save 

Após isso, já poderá ser feito o uso da biblioteca e a data será formatada. Para isso, siga a aula e implemente o código que fará essa manipulação.

Ao final, seu código deve estar como se vê abaixo:

    const express = require('express')
    const router = express.Router()
    const { Post, Usuario } = require('../db/models')
    const moment = require('moment')
    moment.locale('pt-br')

    router.get('/', async (req, res) => {
            const posts = await Post.findAll({
                    include: [{
                        model: Usuario
                    }], raw: true, nest: true
            })

            const postResult = posts.map((post) => prepararResultado(post))
            res.render('pages/posts', {posts: postResult, layout: 'layouts/layout-blog.ejs'})
    })

    function prepararResultado(post){

            const result = Object.assign({}, post)
            result.postadoEm = moment(new Date(result.createdAt)).format('DD [de] MMMM [de] yyyy [as] HH:mm')

            if (result.createdAt) delete result.createdAt
            if (result.updatedAt) delete result.updatedAt
            if (result.userId) delete result.userId
            if (result.Usuario){
                    if (result.Usuario.senha) delete result.Usuario.senha
                    if (result.Usuario.createdAt) delete result.Usuario.createdAt
                    if (result.Usuario.updatedAt) delete result.Usuario.updatedAt
            }
            return result
    }

    module.exports = router

Versão 5.3 - Todos os Direitos reservados