2012-06-28 2 views
5

라우팅 테이블의 이점과 유효성 검사를 통한 멀티 DB 스키마의 필요성 때문에 Flatiron의 디렉터 (라우터) 및 Resourceful (ODM)에서 express.js를 사용하고 싶습니다. 내가 이제 Flatiron으로 전환하는 이유는 더 많은 시간이 필요하고 문서 자료가 많지 않기 때문입니다. expressjs에서 라우터로 디렉터를 사용하는 방법

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

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

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

는 불행히도이 작동하지 않습니다

가 "/ 얻을 수 없다"

그래서 무엇을 할 그냥 저를 제공합니다

그러나, 내가 표현에 이사를 사용하는 현재의 방법은?

+0

당신이 쉽게 자신의 응용 프로그램에 위에 구축하거나 확장 https://github.com/visionmedia/express/commit/39efa452fcb075a9a5870f1f71fe60a8742e687b –

답변

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

는 명시 적, resourcefuldirectorhere를 사용하여 샘플 응용 프로그램이 있습니다.

의심이 있으시면 IRC 방 #nodejitsu에서 freenode로 문의하십시오.

+0

그 주셔서 감사합니다 방법을 보여 REPO에 다른 라우팅 변형 예를 추가 ! 나는 총알을 좀 더 자세히 살펴볼 것이다 :) –

3

첫째,과 같이, 미들웨어로 마무리하고 표현을 통과해야 디렉터 사용하려면 : 그에서 제외

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(); 
    }); 
}; 

을 : 당신은 수완이 사용하는 감독이 필요하지 않습니다, 익스프레스에는 자체 라우터가 있습니다 (따라서 감독이 필요하거나 원하지 않을 수도 있습니다).

+0

안녕 조쉬, 나는 익스프레스와 아이언을 강렬하게 비교했다. 아이론 구성 요소에는 좋은 생각이 있습니다 (특히 라우팅 테이블 (디렉터), 유효성 검사 기능이있는 하나의 intuitiv 스키마 API 및 스키마를 코딩 할 수있는 가능성이 많이 있음). 이러한 것들은 정말로 무거운 프로이지만 다른면에는 직감을 깨뜨리는 것들이 있습니다. 예를 들어 디렉터를 사용하는 "복잡한"방법 (광범위한 지원 때문에 서버, 클라이언트 및 클라이언트, http) 또는 데이터베이스 연결을 만드는 방법. 기여할 노하우를 가지지 않고 이것을 비판하기는 싫다. (하지만 아마 nodejitsus에 도움이 될 것이다 :) –

관련 문제