我使用nodejs / express作为我的Web应用程序的服务器端。
另一位不再与我合作的开发人员将angularjs dist bundle与服务器应用程序合并,以便运行" node index.js"它将同时为角度前端内容和服务器端api提供服务。这是为了改善缓慢负荷。
由于使nodejs后端服务于../dist文件夹前端,我有一个问题,我试图解决路由问题。
如下所示,我目前已注释掉所有路线。
当这被注释掉时,我可以点击所有api端点,但它不会提供来自../dist文件夹的angularjs内容。
如果没有注释掉所有路线,它会提升我的角度内容但无法到达我的任何api端点。所有对api端点的调用返回200但从未达到api端点。
答案 0 :(得分:0)
订单在定义路线时很重要。如果你的第一个条目是一个全能,那么它将真正捕获所有内容,甚至是/api
的请求。所以把你的全部作为最后一个条目:
app.get("/api", function(req,res) {
res.json({
message: "Hello World!"
});
});
app.get("*", function(req,res) {
res.sendFile(__dirname + "/dist/index.html");
});
明确宣布您的SPA路线也是明智的,即使您已经拥有一个全能:
app.get("/", function(req,res) {
res.sendFile(__dirname + "/dist/index.html");
});
app.get("/api", function(req,res) {
res.json({
message: "Hello World!"
});
});
app.get("*", function(req,res) {
res.sendFile(__dirname + "/dist/index.html");
});