AngularJS:如何访问节点请求参数

时间:2014-12-21 17:15:24

标签: angularjs node.js express

我正在使用角度来处理一些路线,即家庭和登陆页面。但是,在用户登录后,我希望能够访问附加到req对象的用户参数。

通常,在express中,这意味着在像这样的获取请求之后呈现页面

app.get('/home'... {user: req.user})

然后访问ejs模板中的<%= req.user %>

然而,在角度方面,我正在使用ui-router打开这样的页面

app.config(['$stateProvider', '$urlRouterProvider', 
    function($stateProvider, $urlRouterProvider){
        $stateProvider.state('home',{
            url: '/home', 
            templateUrl: '/home.html',
            controller: 'MainCtrl', //initializes with this ctrl, no need to specify earlier
            resolve: {
                postPromise: ['posts', function(posts){
                    return posts.getAll();
                }]
            }
        });
        $stateProvider.state('posts', {
            url: '/posts/{id}',
            templateUrl: '/posts.html',
            controller: 'PostsCtrl',
            resolve: {
                post: ['$stateParams', 'posts', function($stateParams, posts){
                    return posts.get($stateParams.id);
                }]
            }
        });
        $stateProvider.state('landing', {
            url: '/landing',
            templateUrl: '/landing.html',
            controller: 'landCtrl',
        });
        $urlRouterProvider.otherwise('home');//otherwise go here
    }]);

用户登录后,我无法访问req.user对象。对于某些条件执行,我需要这样做。任何的想法?谢谢!

1 个答案:

答案 0 :(得分:0)

我推荐sharify这是一个npm包,它允许您通过<script>标记将一些服务器端数据发送到您的浏览器代码,其中包含一些JSON。按照教程,我通常最终将用户设置为角度应用程序中的常量:

myapp.constant('user', sharify.data.user);