在Node.js&Express上使用Angular的客户端边界

我在服务器端使用Node&Express,在客户端使用Angular。

但是我不能实现Angular客户端路由。 我的Angular路由器看起来像这样:

app.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/blogs', { templateUrl: 'partials/blogs', controller: 'BlogController' }). when('/news', { templateUrl: 'partials/news', controller: 'NewsController' }). otherwise({redirectTo: '/'}); }]); 

这是我的服务器路由:

 app.use('/',routes.index); app.use('/partials/:filename',routes.partials); 

和我的index.js:

 exports.partials = function(req, res){ var filename = req.params.filename; if(!filename) return; res.render("partials/" + filename ); }; exports.index = function(req, res){ res.render('index'); }; 

但是不是呈现部分,我得到每个URL的索引页面

我究竟做错了什么?

你必须创build一个这样的路线:

 router.get('*', function(req, res){ res.render('layout'); }); 

在layout.jade中,您可以初始化您的路线:

  script(src='https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js') script(src='https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular-route.js') script(src='https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js') script(src='/javascripts/app.js') 

App.js:

 var app = angular.module('app', ["ngRoute"]); app.config(['$routeProvider', function($routeprovider){ $routeprovider. when('/', { template: 'Ok' }) }]);