SORU
10 NİSAN 2012, Salı


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
13 Ocak 2014, PAZARTESİ


Node.js dairesel bağımlılıkları destekler.


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-----http://expressjs.com/4x/api.html#router

Yeni jeneratör örnek:https://github.com/expressjs/generator/blob/master/templates/js/routes/index.js 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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • MrDevin521

    MrDevin521

    18 Temmuz 2010