Node.js / Async - Как избежать ада обратного вызова с async?
Я новичок в веб-разработке для Node.Js и JavaScript. Я вижу, что обратные вызовы внутри обратных вызовов могут быть проблемой, и есть модули, чтобы этого избежать. Один из этих модулей асинхронный,https://github.com/caolan/async
Я прочитал документацию, но трудно начать и понять, как это сделать.
Например, у меня есть эта функция "check_aut_user", как я могу преобразовать этот код, используя async?
function check_auth_user(username, password, done) {
var client = new pg.Client("pg://user:[email protected]/database");
client.connect(function(err) {
// If not get the connection
if(err) { return console.error('could not connect to postgres', err); }
// Query the user table
client.query('select * from "user" where username = $1 and password = $2', [username, password], function(err, result) {
if(err) { return console.error('error running query', err); }
if (result.rowCount > 0) {
var res = result.rows[0];
console.log(res);
passport.serializeUser(function(res, done) {
//console.log("serializer: " + res);
done(null, res);
});
passport.deserializeUser(function(user, done) {
//console.log("deserializer: " + user['password']);
done(null, res);
});
return done(null, res);
} else {
return done(null, false);
}
});
});
}
С уважением,