Eu fiz o seguinte código e percebi que o servidor é iniciado antes do banco de dados:
database.js
const conexao = require('../app/infraestrutura/conexao')
const Tabelas = require('../app/infraestrutura/tabelas')
const tabelas = new Tabelas()
module.exports = () => {
    return new Promise((resolve, reject) => {
        conexao.connect(erro => {
            if(erro) {
                return reject(console.log(erro))
            }           
            return resolve(
                // tabelas.init(conexao)
                console.log('conectado com sucesso'))
        })
    })
}index.js
const app = require('./src/config/custom-express')
const database = require('./src/config/database')
let server;
database()
    .then(server = app.listen(3000, () => {
        console.log('Servidor rodando na porta 3000')
    }))
    .catch(erro => console.log(erro))
module.exports = serverO que poderia fazer para que o banco fosse inicializado antes do servidor?
 
             
            