Angularjs 角度布线不适用于express

Angularjs 角度布线不适用于express,angularjs,express,Angularjs,Express,我正在做一个示例MEAN应用程序。我有我的角度路由,但当我提出任何请求时,它会直接命中服务器,并给我一个无法获取/电影 下面是我为静态文件提供服务的服务器端代码 //Serve html files app.get('/', function(req, res) { res.sendFile(__dirname + '/index.html'); }); //Register all the client folder var client = __dirname + '/modules

我正在做一个示例MEAN应用程序。我有我的角度路由,但当我提出任何请求时,它会直接命中服务器,并给我一个无法获取/电影

下面是我为静态文件提供服务的服务器端代码

 //Serve html files
app.get('/', function(req, res) {
  res.sendFile(__dirname + '/index.html');
});

//Register all the client folder
var client = __dirname + '/modules';
fs.readdir(client, function(err,files) {
    files.map(function(file){
        app.use(express.static(path.join(__dirname, '/modules'+'/'+file+'/client')));
    })
});

//Serve js files
app.use(express.static(path.join(__dirname, '/public')));

//Load the models
app.models = require('./index');

//Load the routes
var routes = require('./routes');
_.each(routes,function(controller,route){
    app.use(route,controller(app,route));
});
在我的客户端文件夹中,另一个名为“视图”的文件夹位于我的所有模板所在的位置

下面是我的/电影URL的路由

angular.module('movies').config(['$stateProvider',
  function ($stateProvider) {
    // Movies state routing
    $stateProvider
      .state('movies.list', {
        url: '/movies',
        templateUrl: 'views/movie.html'
      })
    }
]);

urlRouterProvider
添加到配置中,并将控制器添加到
stateProvider中。状态

myApp.config(function($stateProvider, $urlRouterProvider) {
  //
  // For any unmatched url, redirect to /state1
  $urlRouterProvider.otherwise("/state1");
  //
  // Now set up the states
  $stateProvider
    .state('state1.list', {
      url: "/list",
      templateUrl: "partials/state1.list.html",
      controller: function($scope) {
        $scope.items = ["A", "List", "Of", "Items"];
      }
    })
});
参考资料:

通过在州名
.state('movies.list',{
中使用点,您正在创建父州“movies”的嵌套州“list”

如果不希望创建嵌套状态,请删除该点并将其命名为“listMovies”,它应该可以工作

更新

在express配置中:

app.get('/*', function(req, res) { 
    res.sendFile(__dirname + '/index.html')
});
在你的角度路线上:

angular.module('movies').config(['$stateProvider', '$locationProvider',
  function ($stateProvider, $locationProvider) {
    // Movies state routing
    $stateProvider
      .state('movies', {
        url: '/movies',
        templateUrl: 'views/movie.html'
      });
     $locationProvider.html5Mode(true);
    }
]);

用最新代码更新问题您是否正在使用ui路由器?是的,我正在使用ui-router。仅用于在我的HTML中进行测试“”存在。当URL更改为localhost://3000/Movie 即使在路由中配置了/GET/movies,我也无法获取它。我添加的那个。仍然是相同的错误。我的角度路由根本没有触发。只是为了在我的HTML中测试“”存在。当URL更改为localhost://3000/Movie 即使在路由中配置了/movies,我也无法获取/movies。我只是想澄清一下,您是否正在调用localhost:PORT/#/movies?否,以避免我启用HTML5模式的那些哈希前缀。我的请求正在进行,我想知道为什么没有发生角侧路由。添加这些行之后,您好app.get(/*)的原因我现在得到了“未捕获的语法错误:意外的标记您可以将更新的代码粘贴到这里吗?您是否使用了
app.get(/*)
app.get('/*)”