有没有一种方法可以使用Node.js路由覆盖Angular路由器-仅针对特定路径?

时间:2019-02-19 11:21:44

标签: html node.js angular exception router

我目前有一项服务,该服务正在通过Node向用户提供,并且正在使用Angular的路由器。
一切都很好,除了一件事:我想将Node的路由器用于一条特定路径,而不是Angular的路由器。 如何做到这一点?

作为一个临时解决方案,我一直在尝试使用CORS,该方法在某种程度上是成功的,但肯定不能使用该解决方案。

我看到了这个Stackoverflow帖子:
MEAN - Angular routes over-riding NodeJS routes

但这似乎是针对Angular的路由器。

对特定路径的传入请求(例如:“ / specificpath”的POST请求)应由Node.js处理,其余请求应由Angular的路由器处理。

谢谢。

1 个答案:

答案 0 :(得分:0)

通常,您将所有传入流量重定向到index.html文件,以便Angular负责路由:

app.get('*', function (req, res) {
    res.sendFile('/public/index.html');
});

由于已将其视为已注册的中间件,因此您可以通过指定路由(通常在node.js中通常使用的方式)来添加不应发送到Angular的路由:

app.get('/specificpath', yourController.yourMethod);

因此,完整的代码示例为:

app.get('/specificpath', yourController.yourMethod);
app.get('*', function (req, res) {
    res.sendFile('/public/index.html');
});