MEAN Stack路由误解

时间:2016-03-01 16:21:19

标签: javascript angularjs node.js express mean-stack

我正在使用Riot的Developer API创建一个英雄联盟网站。

我知道如何设置路由和什么不是,但我对某些事情感到困惑,哪些页面/网址由快速路由处理,哪些页面/网址由角度处理?有人可以帮我举个例子吗?我已经在这几个星期了,没有运气。 所以我会喜欢website.com/player/playerName将通过该玩家名称搜索riot的开发者api并提取该页面的统计数据。

感谢我能得到的任何帮助

1 个答案:

答案 0 :(得分:0)

Express将处理服务器端路由,Angular将处理任何客户端路由。

服务器端路由使用服务器端编译器生成网页,然后将网页代码发送到浏览器进行渲染。当服务器(Express / Node)收到请求时会发生这种情况,这通常会通过您的index.js(在路由dir中)或routes.js中,您可以使用某些代码来路由该请求:

app.get('/', function (req, res) {
  res.send('root');
});

您可以在此处详细了解Express路线:http://expressjs.com/en/guide/routing.html

客户端路由使用Javascript来更改现在已在浏览器中加载的已呈现代码。因此,所有这些路由都在浏览器中进行。 Angular在其路由系统中使用模板,因此您可以在用户导航时加载不同的模板,而无需强制浏览器加载新页面。角度路由将位于公共目录中的app.js中,路由代码如下所示:

angular.module('pathApp',[] ,function($routeProvider, $locationProvider){
  $routeProvider
  .when('/Book/Delete', {
    template: '<div class="box" ng-class="classname">Delete</div>',
    controller: function($scope) {$scope.classname="delete"}
  })
  .when('/Book/Show', {
    template: '<div class="box" ng-class="classname">Show</div>',
    controller: function($scope) {$scope.classname="show"}
  })
  .otherwise({redirectTo: '/Book/Error'});
  $locationProvider.html5Mode(true);        
});

您可以在此处了解有关角度路由的更多信息: https://docs.angularjs.org/api/ngRoute/service/ $路线