2012-06-28 24 views
5

Düztabanın yöneticisi (yönlendirici) ve Resourceful (ODM) ile express.js kullanmak istiyorum çünkü yönlendirme tablolarının yararları gibi ve çok db şemalarını doğrulama ile kullanmam gerekiyor. Artık tamamen Flatiron'a geçmemin sebebi, biraz daha fazla zamana ihtiyaç duyduğunun ve fazladan doküman materyaline gerek duymama nedeniyledir. Yönlendiriciyi yönlendirici olarak yönlendirici olarak nasıl kullanabilirim

var express = require('express') 
    , director = require('director'); 

function hello(){ 
    console.log('Success'); 
} 

var router = new director.http.Router({ 
    '/': { 
     get: hello 
    } 
}); 

Ne yazık ki bu işe ve yok

bir "/ GET" Can not

Yani ne yapacağını var sadece bana verir:

Ancak, ben express yönetmeni kullandığınız geçerli yoldur?

+0

kolayca kendi uygulamasında üstünde inşa edebilirsiniz veya bir uzantısı https://github.com/visionmedia/express/commit/39efa452fcb075a9a5870f1f71fe60a8742e687b –

cevap

5
var express = require('express') 
    , director = require('director') 
    , http = require('http'); 

var app = express(); 

var hello = function() { 
    this.res.send(200, 'Hello World!'); 
}; 

var router = new director.http.Router({ 
    '/': { 
    get: hello 
    } 
}); 

var middleware = function (req, res, next) { 
    router.dispatch(req, res, function (err) { 
    if (err == undefined || err) next(); 
    }); 
}; 

app.configure(function(){ 
    app.set('port', process.env.PORT || 3000); 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 

    app.use(express.favicon()); 
    app.use(express.bodyParser()); 

    app.use(middleware); 

    app.use(express.static(__dirname + '/public')); 
}); 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log("Express server listening on port " + app.get('port')); 
}); 

ekspres, resourceful ve directorhere kullanarak örnek bir uygulaması bulunmamaktadır.

Daha fazla kuşkunuz varsa, bunları freenode'daki #nodejitsu IRC odamızdan isteyebilirsiniz.

+0

Bunun için teşekkür ederiz göstermek için repoya başka yönlendirme varyant örneği eklendi ! Mermiye daha yakından bakacağım :) –

3

Öncelikle, bu yüzden gibi bir katman olarak tamamlamayı ve ifade etme geçmek gerekir yönetmeni kullanmak için: Kenara

app.use(function (req, res, next) { 
    router.dispatch(req, res, function (err) { 
    if (err) { 
     // handle errors however you like. This one is probably not important. 
    } 
    next(); 
    }); 
}; 

: Sen becerikli kullanımı yönetmen gerekmez, ve ekspres kendi yönlendiricisine sahiptir (böylece yönetmene/istemeye bile ihtiyacınız olmayabilir).

+0

Merhaba josh, ben ekspres ve flatiron intensivly karşılaştırdık. Flatiron bileşenleri iyi düşüncelere sahiptir (özellikle yönlendirme tabloları (yönetmen), doğrulama ile bir intuitiv şema api ve şemayı kodlamak için pek çok olasılık). Bu şeyler gerçekten ağır artılar ama diğer tarafta sezgiyi kıran şeyler var. Örneğin, yönetmenin “karmaşık” yolu (geniş destek nedeniyle: sunucu, istemci ve cli, http) veya veritabanı bağlantısı oluşturma yolu. Ben katkıda bulunmak için know-how yapmadan bunu eleştirmekten nefret ediyorum :(ama belki de nodejitsus yardımcı olur :) –

İlgili konular