I am working on a project that uses AngularJS and Socket.io. I found this great integration example.
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, although I usually just put the server logic in app.js , it seems that here the logic is divided between api.js , socket.js and index.js - I really like it.
However, let's say that in socket.js I need to use something specific in api.js .. add var api = require('./api'); in socket.js ?
fusio source share