2014-03-26 16 views
3

我有以下文件Express 4的路由器與外部文件

lib/pub 
lib/pub/index.js 
app.js 

在App.js

我:

// app.js 
var express = require("express") 
, app = express() 
, router = express.Router() 
; 
... 
router.use('/pub',require('./pub')); 

,然後index.js

// pub/index.js 
var express = require('express') 
, router = express.Router() 
; 
console.log("file loaded successfully") 
module.exports = function(){ 
    router.get('/',function(req,res){ 
    console.log("got the get request") 
    }) 
} 

我遇到的問題localhost/pub請求,我永遠不會得到got the get request,無論我嘗試更改代碼,嘗試將pub添加到路徑。

router.get('/',... 
router.get('/pub',... 
router.get('./pub,... 
router.get('./',... 
router.get('pub',... 
etc... 

那些或我已經嘗試工作的任何其他可笑的方式都沒有...我永遠無法得到的日誌,說是給我的請求......

我在做什麼錯了! (expressjs變化如此頻繁,並從根本上,任何網絡教程變得多餘或以前的任何幫助別人得到)

回答

8

(編輯,以反映意見)

如果你想你的路線移動到外部文件,請使用以下模式:

app.js

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

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

routes.js

module.exports = function(app) { 
    app.get('/pub', function(req, res) { 
    console.log('got the get!'); 
    res.end(); 
    }); 
}; 
+0

沒有運氣要麼...我成功的文件加載...但如何index.js知道這是一個得到或帖子等...?用這種方法? – Val

+0

對於你想要做什麼,我還有點不確定。什麼類型的請求應該觸發日誌? – SomeKittens

+0

如果我有請求'localhost/pub'我期望'得到了get請求',我試圖避免在同一個文件中加載路由負載而導致app.js文件混亂,因爲會有負載。 – Val