I'm using bluebird for my node server and mysql. I have a few questions. There are function inside first module
this.__proto__.getPerson = function (personId) {
promise.using(db_conn.getSqlConnection(), function (conn) {
var q = 'SELECT * FROM Persons WHERE person_id = ' + conn.escape(personId) + ';';
return conn.queryAsync(q);
})
.spread(function (rows, fields) {
return rows;
})
.catch(function (err) {
throw new Error(err.message, err.code);
});
};
How to promisify mysql i learned from How will a promisified mysql module work with NodeJS?.
question 1: Can I return from module promisifyed object, or I have to do:
var dbPerson = new mPerson();
promise.promisifyAll(dbPerson);
in every new module where I need the Person.
question 2: How can i receive data from function above, when i do so, i'm getting nothing:
dbPerson.getPersonAsync(personId).then(function(rowPerson){
console.log(rowPerson);
});
UPD: When I'm calling
dbPerson.getPersonAsync(personId)
I'm getting result inside .spread
UPD 2: I got this
console.log(dbPerson.getPersonAsync(personId));
{ _bitField: 0,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined,
_settledValue: undefined,
_boundTo: undefined }
Resolved: I removed this line
promise.promisifyAll(dbPerson);
I think this is because the dbPerson.getPerson(personId)
already returns a promise