Я написал этот код, который, кажется, работает:
database.js
const {Pool} = require('pg');
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
module.exports = {
query: (text, params) => pool.query(text, params)
};
auth_facade.js
const database = require('../../utils/database');
module.exports.findPersonByEmail = async function(email) {
const query = 'SELECT * FROM Person WHERE email = $1';
const values = [email];
try {
console.log(1);
const {rows} = await database.query(query, values);
console.log(2);
return rows[0];
} catch (err) {
next(err);
}
};
auth_controller.js
const authFacade = require('./auth_facade');
module.exports.signin = async function(req, res, next) {
console.log(0);
var person = await authFacade.findPersonByEmail(req.body.email);
console.log(3);
};
Показывает, как я и ожидал, 0123.
Однако я не понимаю, зачем мне нужен async/await
на auth_facade::findPersonByEmail
и auth_controller::signin
?
Почему, если я удаляю асинхронную подпись auth_controller::signin
и await
внутри нее, я больше не получаю 0123, а вместо нее 0132?Разве это не должно быть заблокировано в любом случае? auth_facade
?