我一直在努力避免使用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时导致服务器出现问题。 我想知道你们中是否有人有这个问题的经验和解决方案。
感谢您的时间。
答案 0 :(得分:1)
在expressjs中,路由规则按照您在代码中显示的顺序进行匹配。因此,'/ *'规则始终首先匹配,永远不会达到第二个规则。
将第二条规则放在第一条规则之前可能会解决问题。
希望它有所帮助。