我正在努力研究Angular和Express Routing(顺便说一句,我不知道是Express的新手),我一直用Angular处理路由 - 用ui-router - 但现在我开始构建一个MEAN.js应用程序我注意到我可以处理服务器端路由和客户端路由......这就是让我感到困惑的原因,这里有一些我的问题:
-
他们有什么不同?
-
如果我切换到快速路由,我还会有SPA吗?
-
我可以同时使用两者吗?怎么样?这是好习惯吗?它有什么好处吗?
-
我应该何时只使用其中一个?
-
我将如何处理路线参数?
-
等......
如果有人可以详细解释这些问题,以及人们需要知道的其他额外事情我会非常感激 .
另外,我想知道的是:我只需要在Express中设置服务器内容,还是需要在Node中编码?
3 回答
Express中的路由与角度中的路由略有不同
在快递
因此,如果您使用angularjs进行路由,那么您不需要使用express为html模板设置路由 .
您只需使用express创建RESTAPI然后使用angularjs
$http
或$resource
来使用这些APISummary:
Example
这是创建rest API的快速路由 .
现在在angularjs呼叫做工作
这里只有两美分 . 其他专家应该纠正我并进一步解释:
前端路由通常意味着在#之后的URL中进行路由管理 . 这是因为浏览器忽略#之后的任何内容 . 所以这是由角度来利用ajax调用并根据#之后的路径路径获取资源 .
什么表达句柄是#之前的URL . 这用于从浏览器到服务器发出实际请求 .
他们有什么不同:回答
如果我切换到Express路由,我还会有SPA:
如果您在前端手动管理网址,同时进行ajax调用以填充单个页面,则可以随时使用SPA . 管理前端的网址应具有可读性 .
我可以同时使用这两种吗?怎么样? :
每个人都使用两者 . SPA也使用两者 . 通常基于认证的事物由快速路由处理,而授权和其他基于路由的交互(例如请求资源和其他),前端路由被使用 . 即使您使用前端路由,对于场景后面的ajax请求,您仍然依赖于express的路由 .
这是好习惯吗?它有什么好处吗? :
使用express的路由进行身份验证并提供资源,并使用前端的角度路由来保持SPA的运行始终是一个好习惯 .
我什么时候才应该只使用其中一个? :回答
我将如何处理路线参数? :
前端使用路径参数(如果使用ng-route)和后端使用slug,bodyparser等处理参数 . 你需要花一些时间来学习它们 .
Can we use both
当然,你可以使用两者 . 根据您的应用程序要求,您的应用程序的哪个部分需要成为spa以获得更好的用户体验以及您的快速应用程序需要呈现的部分视图 .
If i switch to Express routing will i still have a SPA?
如果特定路由不是由角度处理的,并且您希望通过快速应用程序生成视图,则可以执行此操作 . 如果你想开发一个完整的水疗中心,那么你需要在快递应用程序中开发一个api(http终点)来响应你的角度应用程序的AJAX请求 . Angular routing是所有bout clint side routing,用于生成模板并从服务器获取数据(在您的case case中)并呈现视图 . 通过所有角度路由调用您的快速路由来获取json数据或任何模板以给出spa的印象
例
我们有快递
您的主页必须包含所有角度脚本文件以初始化角度应用程序
你可以在克林特边码
Can i use both at same time? How? Is it good practice? Does it has any benefit?
我们可以同时使用两者 . 这取决于您的应用程序逻辑,它们对使用两者都没有害处或好处 .
When should i use only one of them? 使用快速路由只有你更关心搜索引擎优化 . 由于SPA不是默认的搜索引擎友好型,因此您需要采取一些额外的操作以使其对搜索引擎友好 .
How will i handle route parameters? 这取决于您使用的角度路由 . 我的意思是香草角度路由或UI路由 . 但这两个概念都是一样的
passing parameters
要通过UI路由将参数传递给服务器,请通过https://github.com/angular-ui/ui-router/wiki/URL-Routing#url-parameters
对于UI路由,请点击此链接https://github.com/angular-ui/ui-router/wiki
如果你的应用程序不是更复杂,你不关心嵌套视图子视图等我的建议与角平面路由 . 毫无疑问,UI路由器提供了更多先进的路由概念,但学习曲线也很陡峭 . 如果你的应用程序很简单,请使用角度路由