How to structure Node/Angular/Socket.io project?

I am working on a project that uses AngularJS and Socket.io. I found this very nice example of integration.

This is the project structure:

app.js                  --> app config
bower.json              --> for bower
package.json            --> for npm
public/                 --> all of the files to be used in on the client side
  css/                  --> css files
    app.css             --> default stylesheet
  img/                  --> image files
  js/                   --> javascript files
    app.js              --> declare top-level app module
    controllers.js      --> application controllers
    directives.js       --> custom angular directives
    filters.js          --> custom angular filters
    services.js         --> custom angular services
  bower_components/
    angular/            --> angular.js
    angular-socket-io/  --> socket.io adapter for angular
routes/
  index.js              --> route for serving HTML pages and partials
  socket.js             --> serve content over a socket
  api.js                --> serve JSON to our AngularJS client
views/
  index.jade            --> main page for app
  layout.jade           --> doctype, title, head boilerplate
  partials/             --> angular view partials (partial jade templates)
    partial1.jade
    partial2.jade

in app.js:

var express = require('express'),
    routes = require('./routes'),
    api = require('./routes/api'),
    socket = require('./routes/socket');

...

// serve index and view partials
app.get('/', routes.index);
app.get('/partials/:name', routes.partials);

// JSON API
app.get('/api/name', api.name);

// redirect all others to the index (HTML5 history)
app.get('*', routes.index);

// Socket.io Communication
io.sockets.on('connection', require('./routes/socket'));

Now, while normally I would just put the server logic in app.js it seems that here the logic is divided between api.js, socket.jsand index.js- I quite like this.

However, let's say that in socket.js I need to use something defined in api.js.. should I add a var api = require('./api'); in socket.js?

I ended up creating modules/objects, importing everything into the app.js and passing them by reference to each other (when needed)..

  var mashup = require('./routes/mashupModule'),
  socket = require('./routes/socketModule'),
  browser = require('./routes/browserModule');

  socket.init(server, browser, mashup);
  browser.init(socket, mashup);

Not sure whether this is the best way to have some kind of separation in the code.. I am used to Java, and it sucks that in JS it is usually one big source file..