2015-02-06 1 views
0

조금 복잡해지기 때문에 노드 서버에서 경로를 끊으려고합니다. 내가 튜토리얼 서버에서 본 패턴을 다음과 같이 보입니다 파일 경로/routes.js했다 : 내 서버노드/익스프레스 서버에서 경로를 끊지 만 라우터가 정의되지 않았습니다.

app.use(require('./routes/routes')) 

에이 줄을 추가

var router = require('express').Router() 
// routes in here 
module.exports = router 

하지만 내 서버 원 '을 t 시작하고 내가 명시 문서를 확인

router.get('/', function (req, res, next)) Cannot call method 'get' of undefined 

오류를 (버전 3.16.3)을 제공하지만, 라우터가 정의되지와 '수'

를 호출 할 수 없습니다 이유를 알아낼 수 없었다

답변

2

나는 일반적으로 라우트 설정을 가지고 있으며, 나는 그것을 요구한다.

// config/routes.js 

module.exports = function (app) { 

    app.get('/', get.stuff); 
    app.post('/api/:id', create.stuff); 

} 

지금 우리의 서버에, 우리는 단지 routes.js 파일이 필요하고, 일

// server.js 

var app = express(), 
    server = http.createServer(app).listen(app.get('port'), function() {}); 

require('./config/routes.js')(app); 
+0

app을 보낼 수 있습니다. 나는 노선의 종류가 많은데, 일부는 html 페이지 용이고 다른 것들은 내 응용 프로그램 용 API입니다. 더 많은 모듈성을 위해 app1routes.js app2routes.js와 같은 구성의 다른 라우팅 파일을 권장 하시겠습니까? – user137717

+0

그리고 처음 시도 할 때 무엇이 ​​잘못되었는지 알 수 있습니까? 나는 튜토리얼에서 그걸 해냈다.저기서 일한다. 그리고 나는 정말로 내가 놓친 것을 나에게 buggin한다. – user137717

+0

첫 번째 시도는 라우터가 정의 된 적이 없다는 것입니다. 전에 app.use (라우터) 코드를 사용한 적이 없으므로 잘 모르겠습니다. 라우트를 많이 가지고있는 이유는 routeConfig.json 파일을 동적으로 생성하는 것입니다. [{method : 'get', route : '/', middleware : [authenticate, parseStuff] 컨트롤러 : get.stuff}]를 실행 한 다음 각 경로를 반복하고 리스너를 만듭니다. –

관련 문제