在Node.js上使用Angular进行客户端路由表达

Client Side Routhing with Angular on Node.js & Express

本文关键字:客户端 路由 Angular js Node      更新时间:2023-09-26

我使用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);

And my 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的索引页

我做错了什么?

你必须创建一个这样的路由:

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

在布局。你可以初始化你的路由:

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