ここでの問題は、Node.js に必要な非同期の方法をまだ考えていないことだと確信しています。
電子メールが渡されたときにユーザーがデータベースにいるかどうかをチェックし、またはを返すuserExists()
モジュールに関数があります。db
true
false
関連部分:
userExists : function(email) {
var client = new pg.Client(app.conString);
var query;
var result = false;
client.connect();
query = client.query(
"SELECT * FROM users WHERE email = $1",
[email]
);
query.on('row', function(row) {
result = true;
});
query.on('end', function() {
client.end();
return result;
});
私はそれを次のように呼んでいます:
if (!db.userExists(req.session.email)) {
newUser();
} else {
updateUser();
}
}
newUser()
何userExists()
が返されても、呼び出されるのは常にです。どうすればこれを解決できますか?