我遇到了一个错误,我不知道为什么.我尝试在插入数据库之前将所有字符转换为小写并用于比较.在第一个函数this.addUser
我调用toLower变换它变成小写它没有问题但在第二个函数this.checkPublicUsername
我调用toLower它显示我的终端错误说 TypeError: Cannot call method 'toLowerCase' of undefined
function toLower (text) { return text.toLowerCase(); } this.addUser = function(data,callback) { "use strict"; // Generate password hash var salt = bcrypt.genSaltSync(); var password_hash = bcrypt.hashSync(data.password, salt); // transform all character into lowercase var real = toLower(data.publicUsername); // Create user document var user = { '_id': data.email, 'email':data.email, 'password': password_hash, 'name':{ 'firstName': data.firstName, 'lastName': data.lastName }, 'penName': data.penName, 'publicUsername':{ 'display':data.publicUsername, 'real':real } }; users.insert(user, function (err, result) { "use strict"; if (!err) { console.log("Inserted new user"); return callback(null, result[0]); } if (err) console.log(err) return callback(err, null); }); } this.checkPublicUsername = function(data,callback) { "use strict"; var real = toLower(data); var publicUsername = { "publicUsername.real":real } users.find(publicUsername).count(function(err, result) { callback(null,result); }) }
users.checkPublicUsername(data.publicUsername, function(err, result){ if(result){ callback(new Error('"'+data.publicUsername+'" has been taken. Please choose another.'), null); } });
Shai Aharoni.. 5
您收到此错误,因为data.publicUsername
未定义,请检查您传递给此函数的值.
您收到此错误,因为data.publicUsername
未定义,请检查您传递给此函数的值.