下面的代码有两个问题。它是用于注册存储在 mysql 数据库中的用户的 node.js 模块的开始。
第一个问题是,在第一个查询的回调中,变量this.connection是未定义的。第二个问题是变量user在同一个回调中也未定义。因此代码在以下行崩溃:
this.connection.query('INSERT INTO users{{values values}}', {
values: {
user_name: user.username,
user_email: user.email,
user_password: user.password
}
})
请让我知道如何以适当的方式解决这个问题。
非常感谢!
完整代码如下:
module.exports = usermodel;
//connection is a mysql-wrapper connection
function usermodel(connection)
{
this.connection = connection;
}
playermodel.prototype = {
registerByEmail: function (user, callback) {
//check firts if the user already exists
this.connection.query('SELECT user_id FROM users {{where data}}', {
data: {
user_email: user.email
}
},
function (err, result) {
if (err) {
...
} else if (result.length > 0) {
...
} else {
// this.connection is undefined ????????????
this.connection.query('INSERT INTO users {{values values}}', {
values: {
user_name: user.username,
user_email: user.email,
user_password: user.password
}
}),
function (err, result) {
...
}
}
});
}
}