2013-07-05 27 views
6

Ben angularjs ve Socket.io kullanan bir proje üzerinde çalışıyorum. Entegrasyonun çok güzel bir örneğini this buldum. Normalde ben sadece app.js sunucu mantığı koyardı ederken mantık ayrılmıştır burada görünüyor,nasıl Düğüm/Eğik/Socket.io projesini yapılandırmak?

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

Şimdi: app.js içinde

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 

:

Bu

proje yapıdır api.js, socket.js ve index.js arasında - oldukça bu gibi.

Ancak, ben socket.js bir var api = require('./api'); eklemelisiniz .. ı api.js tanımlanan şey kullanmak gerekir socket.js yılında diyelim?

+2

Eğer jeneratör-açısal Yeoman hakkında baktınız mı .. ben Java alışkınım ve JS genellikle tek bir büyük kaynak dosyası olması çok kötü? Bu, uygulamanızı yapılandırmanıza yardımcı olur. –

+1

Evet, istemci tarafı sorun yok. açısal oldukça serin :) olduğunu Sorun oldu sunucu tarafında .. ben 'app.js' her şeyi ithal ve (gerektiğinde) birbirlerine referans olarak onları geçirerek, modüller/nesneleri oluştururken sona erdi .. :) Aslında – fusio

cevap

-1

Ben app.js her şeyi ithal ve (gerektiğinde) birbirlerine referans olarak onları geçirerek, modüller/nesneleri oluştururken sona erdi ..

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

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

bu var en iyi yolu olup olmadığından emin değil kodunda ayrılık çeşit ..

+1

Bir büyük kaynak dosyası, işleri yapmanın sadece bir yoludur. Java'dan farklı olarak, istediğiniz her şeyi (neredeyse her zaman) yapabilir ve işlerinizi ihtiyaçlarınıza uygun şekilde düzenleyebilirsiniz. Tabii ki en iyi uygulamalar ve tohumlar var, ama size kalmış. Birisi cevabını düşürdü çünkü yaptığın şey hakkında çok az bilgi verdin. Belki bu modüller doğru bir şekilde içe aktarılıyor ve referans olarak geçiyor olabilir, belki de değil. Belki daha iyi bir açıklama ya da daha fazla kod yardımcı olur. –

İlgili konular