如何构buildNode / Angular / Socket.io项目?

我正在使用AngularJS和Socket.io的项目。 我发现这个非常好的整合的例子。

这是项目结构:

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 

在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')); 

现在,虽然通常我只是将服务器逻辑放在app.js但似乎这里的逻辑是在api.jssocket.jsindex.js之间api.js – 我非常喜欢这个。

然而,让我们说,在socket.js我需要使用api.js定义的api.js ..我应该添加一个var api = require('./api');socket.js

我最终创build了模块/对象,将所有内容导入到app.js中,并通过引用将它们传递给对方(在需要时)。

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

不知道这是否是在代码中进行某种分离的最佳方法..我习惯于Java,而且它在JS中通常是一个大的源文件。