2017-09-02 70 views
0

我面臨一個很奇怪的問題。我有兩條路由配置。一個用於我的儀表板,另一個用於外部API。節點快遞路線問題

dashboard = require('./routes/dashboard')(passport); 
    api = require('./routes/api'); 

    app.use('/', dashboard); 
    app.use('/api', api); 

以下兩條路由在我的api.js路由文件中定義。

router.post('/somepostlink',function(){ 
    // this is reachable from request query. 
}) 

router.get('/somegetlink',function(){ 
    // this is NOT reachable from request query. 
}) 

我在dashboard.js路線此文件定義:

//如果沒有路由匹配,控制轉移到代碼塊下面

router.get('*',function (request,response) { 
console.log("Route not found"); 


return response.send("OOPs :(\nSeems like the page you are looking 
for, isn't available with us.").status(404); 

現在,POST請求localhost:3000/api/somepostlink工作。 但是,GET請求到localhost:3000/API/somegetlink顯示

「哎呀:(\像你爲尋找 頁面nSeems,不適用於我們。」

+0

把包羅萬象的'*'文件中,途徑'app'是做'app.get( '*',...)'你在setu之後p您的API和儀表板路由器。 – Li357

+0

@AndrewLi我試過,但它仍然試圖找到它在dashboard.js路線文件,並顯示儀表板的主頁...('/')路線 – Nikhil

回答

0

在路由器,順序很重要。改變你的路由器的地方,而且變化捕獲404錯誤處理程序。

app.use('/api', api); 
app.use('/', dashboard); 

app.use(function(req, res, next) { 
var err = new Error('Not Found'); 
err.status = 404; 
next(err); 
}); 
+0

嘗試過...也不起作用 – Nikhil