0

我一直在努力避免在带有 ExpressJS 服务器端的 Angular 应用程序中使用 # 。我研究了如何启用 html5mode 并且效果很好。但是,每当有另一个“获取”请求从另一个 url(例如 /api/services)检索数据时,它似乎就以某种方式损坏并且无法正确地向页面提供数据。

这是我在快递结束时所做的。

router.get('/*', function (req, res, next) {
  res.render('index');
});
router.get('/api/service-edit', function (req, res, next) {
  Service.find(function (err, services) {
    if (err) {return next(err);}
    res.json(services);
  });
});

我不是 100% 确定,但我猜是 '/*' 会导致服务器在读取 api url 时出现问题。我想知道你们中是否有人有这个问题的经验和解决这个问题的解决方案。

感谢您的时间。

4

1 回答 1

1

在 expressjs 中,路由规则按照您在代码中显示它们的顺序进行匹配。所以'/*'规则总是首先匹配,而第二条规则永远不会到达。

将第二条规则放在第一条之前可能会解决问题。

希望能帮助到你。

于 2016-11-03T14:35:48.887 回答