Express を使用して Node.js アプリケーションを作成し、node-postgres を使用して PostgreSQL データベースを作成しています。電子メールに基づいて現在のユーザーのユーザー名と本名を検索し、req.session に設定したいと考えています。ただし、以下のコードでそれらを設定すると、そのブロックを離れると未定義になります (つまり、最初の console.log ステートメントは正しい情報を出力し、2 番目のセットは undefined を出力します。これを解決するにはどうすればよいですか?
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();
});