Express.js和Angular.js html5mode(在url中避免#)

时间:2016-11-03 14:27:20

标签: javascript angularjs node.js express html5mode

我一直在努力避免使用ExpressJS服务器端的Angular应用程序中的#。 我已经研究过如何启用html5mode并且它工作得很好。但是每当有另一个“得到”的时候。要求从其他网址检索数据,例如/ 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);
  });
});

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

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

在expressjs中,路由规则按照您在代码中显示的顺序进行匹配。因此,'/ *'规则始终首先匹配,永远不会达到第二个规则。

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

希望它有所帮助。