Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TypeError: Cannot call method 'toLowerCase' of undefined

I ran into an error and I don't know why. I try to transform all the character into lowercase before inserting into database and for comparison purposes. At the first function this.addUser I call toLower to transform it become lowercase it has no problem but at second function this.checkPublicUsername I call toLower it display an error in my terminal said that 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);
    })

}

call checkPublicUsername

 users.checkPublicUsername(data.publicUsername, function(err, result){
     if(result){
     callback(new Error('"'+data.publicUsername+'" has been taken. Please choose another.'), null);
             }
        });
like image 618
John Lim Avatar asked May 15 '26 22:05

John Lim


1 Answers

You get this error because data.publicUsername is undefined, check the value that you are passing to this function.

like image 170
Shai Aharoni Avatar answered May 17 '26 10:05

Shai Aharoni