Angularjs 我的express/angular应用程序使用哪个路由文件?哪个优先?

Angularjs 我的express/angular应用程序使用哪个路由文件?哪个优先?,angularjs,express,Angularjs,Express,我用Angular构建了一个简单的单页express应用程序,我想知道我的应用程序使用哪个路由文件,为什么 我的回购协议是 在我的repo中,我在app/routes.js中有一个节点routes.js文件 在该文件中,我有以下代码行: app.get('*', function(req, res) { res.sendfile('./public/index.html'); // load our public/index.html file });

我用Angular构建了一个简单的单页express应用程序,我想知道我的应用程序使用哪个路由文件,为什么

我的回购协议是

在我的repo中,我在app/routes.js中有一个节点routes.js文件

在该文件中,我有以下代码行:

app.get('*', function(req, res) {
            res.sendfile('./public/index.html'); // load our public/index.html file
        });
因此,我假设上述代码行采用任何路径,响应发送public/index.html文件,这是一个html文件,它加载了一系列角度脚本:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <base href="/">

    <title>Starter Node and Angular</title>

    <!-- CSS -->
    <link rel="stylesheet" href="libs/bootstrap/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/style.css"> <!-- custom styles -->

    <!-- JS -->
    <script src="libs/angular/angular.min.js"></script>
    <script src="libs/angular-route/angular-route.min.js"></script>

    <!-- ANGULAR CUSTOM -->
    <script src="js/controllers/MainCtrl.js"></script>
    <script src="js/controllers/NerdCtrl.js"></script>
    <script src="js/services/NerdService.js"></script>
    <script src="js/appRoutes.js"></script>
    <script src="js/app.js"></script>
</head>
<body ng-app="sampleApp" ng-controller="NerdController">
  <div class="container">

      <!-- HEADER -->
      <nav class="navbar navbar-inverse">
          <div class="navbar-header">
              <a class="navbar-brand" href="/">Stencil: Node and Angular</a>
          </div>

          <!-- LINK TO OUR PAGES. ANGULAR HANDLES THE ROUTING HERE -->
          <ul class="nav navbar-nav">
              <li><a href="/nerds">Nerds</a></li>
          </ul>
      </nav>

      <!-- ANGULAR DYNAMIC CONTENT -->
      <div ng-view></div>

  </div>
</body>
</html>
我的问题:

在第一次加载此应用程序时,如果我们访问localhost:8080,我们是否正在访问Express的route.js文件及其*route?或者我们正在访问Angular的appRoutes.js文件及其/route?哪个优先? 当我们访问/nerds路径时,为什么不在route.js文件中点击Express'*route?为什么我们默认使用appRoutes.js文件中定义的路由?
请记住,$routeProvider在appRoutes.js文件中指定的路由规则与routes.js配置文件中为http请求编写的规则不同。只要您在服务器中设置了此选项,您就应该能够访问公用文件夹中的静态文件,我看到您在server.js中已经有了这些文件:

var express = require('express');
var app = express();
var path = require('path');
//The line below specifies that you are using your public folder for static files
app.use(express.static(path.join(__dirname, "./public")));
//The line below specifies your views folder
app.set('views', path.join(__dirname, './public/views'));

require('./server/config/routes.js')(app);

app.listen(8080);
如果执行此操作,则不需要在app/routes.js中指定“*”,因为此代码已经知道如何将公用文件夹中的index.html文件作为静态文件的“主”文件夹,并且localhost:8080将自动使用index.html作为“基”。您可以在routes.js中删除“*”app.get route。如果要向routes.js文件发送请求或从routes.js文件发送请求,则必须使用$http.get或$http.post通过工厂进行发送

然后,在index.js文件中,您应该具有:

<div ng-view=""></div>
允许您访问$routeProvider中的任何路线。这样,localhost8080/应该在appRoutes.js中选择您的“\”路由。你可能需要也可能不需要该应用。设置“视图”,路径。加入。。。在上面的代码中添加一行,以允许访问views文件夹中的views/home.html和views/nerd.html文件,但如果您还没有这些文件,则不会有任何影响。如果您想使用“path”,只需确保您对express和path的要求先于服务器文件中的其余代码,我看到您已经为“express”完成了这些工作。当其他使用不同操作系统的人试图使用您的代码时,需要“路径”只会允许更大的流动性


让我知道这是否有帮助。

在应用程序first load上,express route服务器端会被点击,并会将angular html和js文件的静态文件返回到浏览器客户端。之后,angular appRoutes.js将在客户端进行处理,并将用户重定向到正确的路由。在url中放置一个角,它可以在不影响服务器端的情况下更改浏览器url,在浏览时请注意浏览器url。那是什么标志?我的应用程序中的那个标志在哪里?Angular是自动完成的吗?想写一个更充实的答案吗?这样我就可以给你评分了?看这个链接,它解释了Angular路线是如何工作的
<div ng-view=""></div>