Format the date with express-handlebars in Nodejs

Asked

Viewed 279 times

0

good night.

How do I format the date that comes from the database using express-handlebars?

Follow my code below:

app js.

const handlebars = require('express-handlebars)

// Handlebars
app.engine('handlebars', handlebars({
  defaultLayout: 'main'
}))
app.set('view engine', 'handlebars')

Consultation in the database:

router.get('/clientes', (req, res) => {
    Cliente.find().sort({data_registro: 'desc'}).then((clientes) => {
        res.render('admin/clientes', {clientes: clientes})
    }).catch((err) => {
        req.flash('error_msg', 'Houve um erro ao listar os clientes!')
        res.redirect('/admin')
    })
})

My customers.handlebars

{{#each clientes}}
<div class="card mt-3">
    <div class="card-body">
        <h3>{{nome}}</h3>
        {{dateFormat data_nascimento}}
        <h5>Endereço</h5>
        <small>{{logradouro}}, {{numero}} - {{bairro}} - {{cidade}}/{{uf}}</small>
        <br>
        <small>Complemento: {{complemento_referencia}}</small>
        <h5>Contato</h5>
        <small>E-mail: {{email}}</small>
        <br>
        <small>Telefones: {{telefone_fixo}} / {{telefone_celular}}</small>
    </div>
</div>
{{else}}
{{/each}}

1 answer

0

You need to install the Moment via npm, create the module and create the format function ex: npm install --save Moment

//---------------------------------------------------------------------------------
//No arquivo de rotas no meu caso app.js instancie o módulo MOMENT.
const moment = require('moment'); //Receber moment

//Configura a função formatDate
app.engine('handlebars', handlebars({
    defaultLayout: 'main', //Defina em sua view ou no meu caso no layout main.js
    helpers: {
        formatDate: (date) => {
            return moment(date).format('DD/MM/YYYY')
        }
    }
}))
//---------------------------------------------------------------------------------
//AGORA VC PODE USAR A FUNÇÃO EM SUAS PÁGINAS
{{#each clientes}}

    
        

{{nome}}

{{formatDate data_nascimento}}{{/formatDate}} Endereço {{logradouro}}, {{numero}} - {{bairro}} - {{cidade}}/{{uf}}
Complemento: {{complemento_referencia}} Contato E-mail: {{email}}
Telefones: {{telefone_fixo}} / {{telefone_celular}}
Data de Registro: {{formatDate created}}{{/formatDate}} {{else}} {{/each}}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.