Я пишу приложение Node.js, используя Express и базу данных PostgreSQL, используя node-postgres. Я хочу найти имя пользователя и настоящее имя текущего пользователя на основе их электронной почты и установить их в req.session. Однако, если я устанавливаю их там, где я нахожусь в коде ниже, они остаются неопределенными, когда мы покидаем этот блок (то есть первые операторы console.log печатают правильную информацию, второй набор печатает неопределенные). Как я могу это решить?Как установить req.session из этой области?
var client = new pg.Client(app.conString);
var realname = "";
var username = "";
client.connect();
var query = client.query(
"SELECT * FROM users WHERE email = $1;",
[req.session.email]
);
query.on('row', function(row) {
req.session.realname = row.realname;
req.session.username = row.username;
console.log(req.session.realname);
console.log(req.session.username);
});
console.log(req.session.realname);
console.log(req.session.username);
query.on('end', function() {
client.end();
});
Совершенного спасибо. Мой мозг все еще не асинхронно думает! – tsvallender
Иногда это может сбивать с толку, но чем больше вы его используете, тем легче становится :) – robertklep