2016-09-28 1 views
0

내 서버로 REST 호출을하고 있습니다. 이제 응용 프로그램 수준에서 경로를 처리하도록 코드를 디자인 할 때 문제없이 작동합니다. 나는 그것이 작동하지 자사의 라우터 수준의 미들웨어를 사용하여 처리 할 때이 파일하는 index.js이 어디 그러나 NodeJs + ExpressJS : 라우터 레벨 미들웨어가 요청을 취할 수 없습니다.

 var https = require("https"); 
     var express = require('express'); 
     var app = express(); 
     var bodyParser = require('body-parser'); 
     var cookieParser = require('cookie-parser'); 
     var path   = require('path'); 

     var routes = require('./server'); //require server directory 

     app.use(bodyParser.json()); 
     app.use(bodyParser.urlencoded({ extended: false })); 
     app.use(cookieParser()); 
     app.set('views', path.join(__dirname, 'views')); 
     app.use(express.static(path.join(__dirname, 'public'))); 
     app.get('/', function(req, res, next) { 
      res.sendFile(path.join(__dirname, 'views', 'index.html')); 
     }); 
     app.listen(3000); 
     module.exports = app; 

내 서버의 디렉토리입니다 내가 라우터를 사용하여 여기에 요청을 처리 할 때 자신을 복용하지 요청. 내 app.js에 페이지를 요청할 수 있지만 라우터 만 작동하지 않습니다.

응용 프로그램 app.js에서 요청을 계속 처리하려고 할 때 작동합니다. 예를 들어 는 :

// If I keep it here it in app.js its working fine. 
     app.post('/click',function(){ 
      console.log("dwfe"); 
     }) 
+0

라우터를 앱에 등록해야합니다. – Sikorski

+0

당신은 var router = express.Router()를 의미합니까? in app.js –

답변

1

app.use('/',router); 

아래 그림과 같이 앱 라우터를 등록해야는

express.Router()express documentation는 또 다른 라우터, 고립 된 미들웨어 인스턴스를 생성을 참조하십시오. 실제로 호출되기 위해서는 app 미들웨어 스택에 추가되어야합니다.

1

당신은 응용 프로그램 개체에 라우터 개체를 첨부해야합니다

app.use('/', router); 

첫 번째 매개 변수는 기본 URL입니다.

+0

감사합니다. 그건 내 바보 같았 어. –

관련 문제