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

时间:2016-01-30 03:16:11

标签: javascript node.js express

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

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

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

2 个答案:

答案 0 :(得分:0)

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

如果您将功能定义如下,并且不调用next,那么它不应该触发下一个中间件(也许是路由)。

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

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

更新:此外,在您的中间件中,请调用res.end()以退出其他路由

答案 1 :(得分:0)

./cms文件中有什么内容?可能是服务器没有关闭响应,所以它继续到下一个路由。