You can pass the exec function a callback. When the exec function determines the username, you invoke the callback with the username.
    var child = exec(cmd, function(error, stdout, stderr, callback) {
        var username = stdout.replace('\r\n','');
        callback( username );
    });
Due to the asynchronous nature of JavaScript, you can't do something like this:
    var username;
    var child = exec(cmd, function(error, stdout, stderr, callback) {
        username = stdout.replace('\r\n','');
    });
    child();
    console.log( username );
This is because the line console.log( username ); won't wait until the function above finished.
Explanation of callbacks:
    var getUserName = function( callback ) {            
        // get the username somehow
        var username = "Foo";    
        callback( username );
    };
    var saveUserInDatabase = function( username ) {
        console.log("User: " + username + " is saved successfully.")
    };
    getUserName( saveUserInDatabase ); // User: Foo is saved successfully.