我正在努力争取Angular和Express Routing(顺便说一句,我对Express表示新手),我一直在使用Angular处理路由 - 使用ui-router - 但现在我和#39; m开始构建MEAN.js应用程序我注意到我可以处理服务器端路由和客户端路由......这就是让我感到困惑的原因,这里有一些我的问题:< / p>
如果有人可以详细解释这些问题,以及人们需要知道的其他额外事情,我会非常感激。
另外,我想知道的是:我只需要在Express中设置服务器内容,还是需要在Node中编码?
答案 0 :(得分:7)
Express中的路由与角度
中的路由略有不同快递
路由是指对端点(URI)的定义 应用程序以及它如何响应客户端请求。
因此,如果您使用angularjs进行路由,则无需使用express为html模板设置路由。
您只需使用express创建RESTAPI,然后使用angularjs $http
或$resource
<强>要点:强>
示例强>
这是创建rest API的快速路由。
app = express();
app.get('/dowork',function(res,req){
console.log(req.params.msg);
/... code to do your work .../
});
现在在angularjs调用中工作
$http.get('http://localhost:8080/dowork',{"msg":"hi"}).success(function(data){
console.log(data);
});
答案 1 :(得分:3)
这里只有两美分。其他专家应该纠正我并进一步解释:
前端路由通常意味着在#之后的URL中进行路由管理。 这是因为浏览器忽略#之后的任何内容。所以这是由角度来利用ajax调用并根据#之后的路径路径获取资源。
在#之前,什么表达句柄是url。这用于从浏览器向服务器发出实际请求。
他们有什么不同:回答
如果我切换到快速路由,我仍然会有SPA:
如果您在前端手动管理网址,同时进行ajax调用以填充您的单个网页,则可以始终拥有SPA。管理前端的网址应该具有可读性。
我可以同时使用两者吗?怎么样? :
每个人都使用两者。 SPA也同时使用。通常基于认证的事物由快速路由处理,而授权和其他基于路由的交互(例如请求资源和其他),前端路由被使用。即使您使用前端路由,对于场景后面的ajax请求,您仍然依赖于express的路由。
这是好的做法吗?它有什么好处吗? :
使用express的路由进行身份验证并提供资源并使用前端的角度路由来保持SPA的运行始终是一种很好的做法。
我应该何时只使用其中一个? :回答
我将如何处理路线参数? :
前端使用路径参数(如果使用ng-route)和后端使用slug,bodyparser等处理参数。 你需要花些时间学习这些。
答案 2 :(得分:1)
我们可以同时使用
当然你可以同时使用两者。根据您的应用程序要求,您的应用程序的哪个部分需要成为spa以获得更好的用户体验,以及您的快速应用程序需要呈现的部分视图。
如果我切换到快速路由,我还会有SPA吗?
如果特定路由不是由角度处理的,并且您希望通过快速应用程序生成视图,则可以执行此操作。如果你想开发一个完整的水疗中心,那么你需要在快递应用程序中开发一个api(http终点)来响应你的角度应用程序的AJAX请求。 Angular routing是所有bout clint side routing,用于生成模板并从服务器获取数据(在您的case case中)并呈现视图。通过所有角度路由调用您的快速路由来获取json数据或任何模板以给出水疗中心的印象
例如
在快递中我们有
app.get("/", function (req, res) {
res.render("home");
});
您的主页必须包含所有角度脚本文件以初始化角度应用
在clint边码中你可以拥有
var app = angular.module("myApp", ["ui.router"])
.config(function ($stateProvider, ) {
$stateProvider.state("home", {
url: "/"
})
.state("manas", {
url: "/manas",
templateUrl: "/templates/manas.html"
// when the state or url is manas its fetch the static manas.html from server and inject that to ui view
})
// i am using angular UI router here
我可以同时使用两者吗?怎么样?这是好习惯吗?它有什么好处吗?
我们可以同时使用两者。这取决于您的应用程序逻辑,它们对使用两者都没有害处或好处。
我应该何时只使用其中一个? 只有在您更关注搜索引擎优化时才使用快速路由。由于SPA不是默认的搜索引擎友好型,因此您需要采取一些额外的操作以使其对搜索引擎友好。
我将如何处理路线参数? 这取决于您使用的角度路由。我的意思是香草角度路由或UI路由。但这两个概念都是一样的
传递参数
通过UI路由传递参数到服务器 https://github.com/angular-ui/ui-router/wiki/URL-Routing#url-parameters
用于UI路由,请点击此链接 https://github.com/angular-ui/ui-router/wiki
如果您的应用程序不是更复杂,您不必关心嵌套视图子视图等 我的建议采用角度平面路由。 毫无疑问,UI路由器提供了更多先进的路由概念,但学习曲线也很陡峭。如果你的应用程序本质上很简单,请使用角度路由