Instead of writing comments, I would avoid using anonymous functions or meaningless names.

For instance,

var create = function (socket, signature) {
    var e = event('create', signature), data = [];
    socket.emit(e, {id : 1});
};


What do you create ? Looking at the code you create an event and then you emit it.

var createAndEmitEvent = function (socket, signature) {
    var e = event('create', signature), data = [];
    socket.emit(e, {id : 1});
};


Here you know by its name. Therefor you don't need a comment block. This block code block doesn't respect the single responsibility principle but principles are meant to be broken. A 2 lines function doesn't need to be splitted.

I would also allow some duplication in the signature.

var createAndEmitEvent = function createAndEmitEvent (socket, signature) { 


The purpose of this is to have the name of the function in the stack trace in case of an error. Otherwise, the function will be identified as anonymous.

Here's another example.

socket.on('init', function(data){
    if(hs.session.userdata){
        fs.readFile(__dirname + '/assets/tmpl/user/dashboard.html', 'utf8', function(err, html){
            if(err) throw err;
            socket.emit('init', {callback: 'dashboard', tmpl: html});
        });
    }else{
        fs.readFile(__dirname + '/assets/tmpl/user/login.html', 'utf8', function(err, html){
            if(err) throw err;
            socket.emit('init', {callback: 'login', tmpl: html});
        });
    }
});


You could create a function called onInitSocket. You also have a another callback inside this function to handle the readFile callback. This is a smell. You could handle this case using promise or using the async module. I recommend the latest in your case in order to not change the paradigm. You also have a variable called hs. If you split your code in functions and later in different file, it won't be so obvious that this name refers to handshake.

Overall, make sure your code speak for itself. You should only have to use comments when the code needs to be unclear (algorithme optimization for instance).

Need some help splitting up my Node.js code
we bought a CrashPlan-Install program for backing up the computer. Since I am still learning about Ubuntu, I don't know how to run the installer. These are the only instructions that I have- To install CrashPlan run the installer in this directory:

./install.sh

Does this mean I need to create the directory? I know how to do that, but if that is the case where (or how) do you run the installer?
