Tôi đang làm việc trên một dự án sử dụng AngularJS và Socket.io. Tôi tìm thấy this ví dụ rất hay về tích hợp.Làm thế nào để cấu trúc dự án Node/Angular/Socket.io?
Đây là cấu trúc dự án:
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
trong 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'));
Bây giờ, trong khi bình thường tôi sẽ chỉ cần đặt logic máy chủ trong app.js
có vẻ như đây logic được chia giữa api.js
, socket.js
và index.js
- Tôi khá thích điều này.
Tuy nhiên, giả sử rằng trong socket.js
Tôi cần phải sử dụng thứ gì đó được xác định trong api.js
.. Tôi có nên thêm var api = require('./api');
trong socket.js
không?
Bạn đã nhìn vào máy phát điện-góc cho Yeoman? Điều này sẽ giúp bạn cấu trúc ứng dụng của mình. –
Có, phía khách hàng không có vấn đề gì. góc cạnh là khá mát mẻ :) Vấn đề là phía máy chủ .. Tôi đã kết thúc việc tạo mô-đun/đối tượng, nhập mọi thứ vào 'app.js' và chuyển chúng bằng tham chiếu với nhau (khi cần) .. :) – fusio