2016-03-25 13 views
2

私は急行でルートを整理しようとしています。しかし、私は動作するように簡単なセットアップを得ることに問題があります。私は2つのファイルapi.js、ルーティング情報があり、index.js、サーバーを実行します。Module.Exports for Expressが動作しません

しかし、これを試してみると、localhost:3000では何の応答も得られません。

api.js

var express = require('express'); 

module.exports = function() { 
    var router = express.Router(); 
    router.get('/', function(req, res) { 
    res.send('im the home page!'); 
    }); 
    return router; 
} 

index.jsしかし

var express = require('express'); 
var app = express(); 

var router = require('./api'); 

app.use('/',router); 
app.listen(3000); 
console.log('Listening on port 3000!'); 

、私はこれにapi.jsを変更すると、それが動作:

APIを.js

var express = require('express'); 

var router = express.Router(); 
router.get('/', function(req, res) { 
    res.send('im the home page!'); 
}); 

module.exports = router; 

トップ1がないときに下api.jsが機能する理由を私は理解していません。 module.exportsはどちらの場合も同じ高速ルータを返さないはずですか?

答えて

1

の違いは、最初のバージョンでは、あなたが戻っあなたはは、ルータ自体を輸出している番目のバージョン対ルータという機能を輸出しているということです。

最初のバージョンでExpressは、エクスポートされた関数をreqresに渡し、何とか要求を処理すると予想します。エクスポートされた関数はもちろん、要求を処理するようには設計されていません(ルータを作成して返すだけです)ので、要求はタイムアウトします。

関連する問題