2017-09-02 73 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