我在Node.js中编写了一个基本的用户创建系统,我想了解createUser函数的结果。代码本身工作正常,发布新用户,现有用户被停止。我想向最终用户展示这一点,所以我设置了一个变量来返回表示结果的数值。Javascript未分配给变量
问题是,该值永远不会分配给。即使我的其他日志语句出现,最终的控制台日志也总是读取未定义的。我觉得这更像是一个JavaScript语法问题,但我很难过。
User.prototype.createUser = function() {
console.log('Begin createUser...');
var email = this.email;
var wasUserCreated; <------- variable to assign
pg.connect(process.env.DATABASE_URL, function (err, client) {
if (err) {
console.log(err.message, err.stack);
wasUserCreated = 0; <------assigning to variable?
}
else {
var query = client.query('SELECT email FROM users WHERE email=$1', [email],
function (err, results) {
if (results.rows.length > 0) {
console.log('That email address has already been registered!');
wasUserCreated = 1; <------assigning to variable?
}
else {
console.log('Email address not found, inserting new account');
insertNewUser();
wasUserCreated = 2; <------assigning to variable?
}
});
}
});
console.log("wasUserCreated: " + wasUserCreated); <------always reads 'undefined'
return wasUserCreated;
};
** A **同步。不相关的,但我会回避使用数值来实现本质上的布尔值。 –