Eu tenho uma tarefa para concluir usando Node, express e MySQL. Agora express requer o uso de retornos de chamada, mas para o MySQL eu quero usar Sequelize o ORM que é baseado em promessas.
O que devo fazer nesta situação?
Devo ir em frente e usar o Sequelize Promises com o nó e expressar "Callbacks" (que eu li não é uma boa prática!) Ou você sabe algo que seria uma escolha melhor nesta situação.
Eu também quero saber por que o Node e o Express usam Callbacks em vez de Promises? É intencional ou algo mais?
Obrigado pela ajuda antecipadamente!
Respostas:
3 para resposta № 1Express e node foram criados antes das promessas serem padronizadas (o que não é há muito tempo).
Não há problema em usar promessas dentro de retornos expressos, você pode usar esse padrão para definir suas rotas de forma ordenada:
app.use("/myroute", require("./myroutehandler"))
e no myroutehandler:
module.exports = function (req, res, next) {
...
}
O que você quer evitar é misturar promessas e retornos de chamada em seu código, porque será difícil mantê-lo. Para evitar que, ao usar bibliotecas baseadas em callback, você possa usar algo como es6-promisify
.