Como promisificar uma função MySql usando bluebird?
Há algum tempo, decidi mudar do PHP para o nó. Nos meus primeiros projetos, não queria usar nenhum ORM, pois pensei que não precisava complicar muito a minha vida aprendendo outra coisa (no momento em que estava aprendendo nó e angular), por isso decidi usar o pacote mysql sem algo mais. É importante dizer que tenho algumas consultas complexas e não queria aprender com o sctratch como fazê-las funcionar usando um dos nós do 9000 ORM, isto é o que tenho feito até agora:
thing.service.js
Thing.list = function (done) {
db.query("SELECT * FROM thing...",function (err,data) {
if (err) {
done(err)
} else {
done(null,data);
}
});
};
module.exports = Thing;
thing.controler.js
Thing = require('thing.service.js');
Thing.list(function (err,data) {
if (err) {
res.status(500).send('Error D:');
} else {
res.json(data);
}
});
como posso promisificar esse tipo de função usando bluebird? Eu já tentei, mas .... aqui estou pedindo ajuda. Isto é o que eu tentei
var Thing = Promise.promisifyAll(require('./models/thing.service.js'));
Thing.list().then(function(){})