我正在使用 Express 编写 Node.js 应用程序,并使用 node-postgres 编写 PostgreSQL 数据库。我想根据他们的电子邮件查找当前用户的用户名和真实姓名,并将它们设置在req.session中。但是,如果我在下面的代码中将它们设置在我所在的位置,当我们离开该块时它们是未定义的(即第一个 console.log 语句打印正确的信息,第二组打印未定义。我该如何解决这个问题?
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();
});