Farklı bir dosya yolları için uygulama-örneği geçirmek Nasıl?ifade:
Bir dosya bütün yolları ve diğer ilgili eylemleri içerir farklı dosyalar, benim yolları ayırmak istiyorum. Ben şu anda bunu başarmak için bir çözüm var, ancak eylemleri erişmek için muktedir uygulaması-örnek genel yapmak istiyorum. Benim şu anki Kur, bu gibi görünüyor:
app.js:
var express = require('express');
var app = express.createServer();
var routes = require('./routes');
var controllers = require('./controllers');
routes.setup(app, controllers);
app.listen(3000, function() {
console.log('Application is listening on port 3000');
});
routes.js:
exports.setup = function(app, controllers) {
app.get('/', controllers.index);
app.get('/posts', controllers.posts.index);
app.get('/posts/:post', controllers.posts.show);
// etc.
};
controllers/index.js:
exports.posts = require('./posts');
exports.index = function(req, res) {
// code
};
controllers/posts.js:
exports.index = function(req, res) {
// code
};
exports.show = function(req, res) {
// code
};
Ancak, bu Kur büyük bir sorun vardır: eylemler (denetleyici/*.için geçmem gereken bir veritabanı - ve uygulama-örneği var js). Tek seçenek aklıma, her iki değişken gerçekten bir çözüm değil küresel hale getiriyor. Yolları bir sürü var çünkü eylemleri yolları ayırmak istiyorum ve merkezi bir yere sahip olacak.
Eylemler için değişkenleri geçmek ama yolları eylemleri ayırmak için en iyi yolu nedir?
CEVAP
Node.js dairesel bağımlılıkları destekler.^ br . Dairesel bağımlılıkları kullanmak yerine require('./yapma')(uygulama) kod çok temizler ve her modül kendi yükleme daha az bağımlı hale getirir güzergah dosyası:
app.js
var app = module.exports = express(); //now app.js can be required to bring app into any file
//some app/middleware setup, etc, including
app.use(app.router);
require('./routes'); //module.exports must be defined before this line
routes/index.js
var app = require('../app');
app.get('/', function(req, res, next) {
res.render('index');
});
//require in some other route files...each of which requires app independently
require('./user');
require('./blog');
-----04/2014 güncelleme-----^ br . Express 4.0 bir ifade ekleyerek tanımlama yolları için usecase sabit.() yönlendirici yöntem! ^ br . belgeleri http://expressjs.com/4x/api.html#router
Yeni jeneratör örnek:^ br . Rota yazma:^ br . https://github.com/expressjs/generator/blob/master/templates/js/routes/index.js ^ br . Ekleme/app namespacing: https://github.com/expressjs/generator/blob/master/templates/js/app.js#L24
Yine de diğer kaynaklardan app erişmek için usecases var, döngüsel bağımlılık hala geçerli bir çözüm.

Nasıl ACTİON_SEND niyet (ve her uygula...
nasıl stüdyo (in-app fatura örneği)And...
Nasıl grep ifade ile eşleşen satırdan ...
Nasıl farklı çizgiler dosya adlarının ...
Nasıl farklı bir uygulama seçmek için....