在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' }) }]);