2016-09-28 19 views
0

私のサーバーにREST呼び出しを行っています。今では、アプリケーションレベルのルートを処理するコードを設計しても問題なく動作します。私はそれが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; 

、そのが動作していないルータレベルのミドルウェアを使用して扱うときでもこれは、私が index.jsファイルを持っていると私はそのは取っていないルーターを使用して、ここで要求を処理しようとすると、私のサーバーのディレクトリですリクエスト。私はapp.jsにページを要求することができますが、ルータのことだけは機能していません。

私のアプリケーションapp.jsで要求を処理しようとすると、正常に動作します。例:の場合 :あなたは

app.use('/',router); 

express documentation

express.Router()を参照してください下に示すように、アプリでルータを登録する必要が

// 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ミドルウェアスタックに追加する必要があります。

1

あなただけのアプリオブジェクトにルータオブジェクトを添付する必要があります。

app.use('/', router); 

最初のパラメータはベースURLです。

+0

ありがとうございます。それは私の愚かだった。 –

関連する問題