node.js和URL端点中的多个路由

app.use('/api', require('./api')); app.use('/', require('./cms')); 

第一个路线是我的公共API,第二个是cms仪表板。 但是这不起作用,因为localhost:80 / api也会加载第二条路线。

如何解决这个问题? 我知道我可以做app.use('/cms', require('./cms')); 但是路由将是localhost:80 / cms / blog这对我来说不好。

我认为你传递给app.use的函数有3个参数,第三个参数是next()callback,它调用下一个中间件。

如果你定义你的函数如下所示,而不是下一个调用,那么它不应该触发下一个中间件(也许也是路由)。

 app.use('/api', function(req, res, next) { require('./api'); }); 

无论您需要的文件包含什么,它可能会收到“下一个”function作为其参数。 别叫它。

更新:另外,在你的中间件中,调用res.end()来退出其他路由

什么在你的./cms文件? 这可能是服务器没有closures响应,所以它继续到下一个路线。