Ao longo das aulas eu vejo que foi exportando uma função no module.exports, só que eu vejo em vários lugares sendo exportado um objeto ai invés de uma função, meu arquivo DAO ficou assim e funciona:
const pgp = require('pg-promise')();
const cn = {
user: 'postgres',
password: 'admin',
host: 'localhost',
port: 5432,
database: 'casadocodigo'
};
const db = pgp(cn);
function getLivros() {
return db.any('select * from livros')
.catch(err => console.error(err));
}
module.exports = {
getLivros
};
A seguinte chamada do router de produtos funciona perfeitamente:
module.exports = (app) => {
const db = app.infra.dao;
app.get('/produtos', (req, resp) => {
db.getLivros()
.then(result => resp.render('produtos', {title: 'Produtos', produtos: result}));
});
};
Dessa forma dispensa a utilização do prototype na função, mas qual seria a convenção mais correta ou mais performática?