节点.js和 URL 终结点中的多个路由

Multiple routes in node.js and URL endpoints

本文关键字:路由 结点 js URL 节点      更新时间:2023-09-26
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(( 回调,它调用下一个中间件。

如果你按下面定义你的函数,并且不调用 next,那么它不应该触发下一个中间件( route 也可能(。

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

无论您需要的文件包含什么,它都可能收到"next"函数作为其参数。不要叫它。

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

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