Как обещать функцию MySql, используя bluebird?

Некоторое время назад я решил перейти с PHP на узел. В моих первых проектах я не хотел использовать ORM, так как думал, что мне не нужно сильно усложнять свою жизнь, изучая что-то другое (на данный момент я изучал нодальный и угловой), поэтому я решил использовать пакет mysql без что-нибудь еще. Важно сказать, что у меня есть несколько сложных запросов, и я не хотел учиться из sctratch, как заставить их работать, используя один из узлов ORM 9000, вот что я делал до сих пор:

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);
  }
});

Как я могу обещать такого рода функции с помощью Bluebird? Я уже пробовал, но .... здесь я прошу помощи. Это то что я пробовал

var Thing = Promise.promisifyAll(require('./models/thing.service.js'));

Thing.list().then(function(){})

Ответы на вопрос(3)

Ваш ответ на вопрос