Express.js 和 Angular.js html5mode(避免在 url 中使用 #)
Express.js and Angular.js html5mode (Avoiding # in url)
我一直在努力避免使用 ExpressJS 服务器端在 Angular 应用程序中使用 #。
我研究了如何启用 html5mode 并且效果很好。但是每当有另一个 'get' 请求从另一个 url 检索数据时,例如 /api/services,它似乎以某种方式损坏并且没有正确地向页面提供数据。
这是我在 express end 中所做的。
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 时出现问题。
我想知道你们中是否有人有过这个问题的经验和解决这个问题的方法。
感谢您的宝贵时间。
在 expressjs 中,路由规则按照您在代码中出现的顺序进行匹配。所以 '/*' 规则总是首先匹配,第二个规则永远不会达到。
将第二条规则放在第一条之前可能会解决问题。
希望对您有所帮助。
我一直在努力避免使用 ExpressJS 服务器端在 Angular 应用程序中使用 #。 我研究了如何启用 html5mode 并且效果很好。但是每当有另一个 'get' 请求从另一个 url 检索数据时,例如 /api/services,它似乎以某种方式损坏并且没有正确地向页面提供数据。
这是我在 express end 中所做的。
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 时出现问题。 我想知道你们中是否有人有过这个问题的经验和解决这个问题的方法。
感谢您的宝贵时间。
在 expressjs 中,路由规则按照您在代码中出现的顺序进行匹配。所以 '/*' 规则总是首先匹配,第二个规则永远不会达到。
将第二条规则放在第一条之前可能会解决问题。
希望对您有所帮助。