2014-02-09 2 views
0

req.user의 사용자 정보를 Nodejs Passport display username보기로 전달하는 좋은 대답이 있습니다. 이 답변을 포함하여 웹에서 보았던 모든 답변과 옥 디스플레이 엔진을 사용하는 mean.io도 있습니다. 제 경우에는 res.sendfile (.... static.html)을 사용하여 파일을 보내고 있습니다.res.render없이보기에 NodeJS 표시 사용자 이름

이 경우보기에 사용자 정보를 전달하는 올바른 방법은 무엇입니까?

+0

내 대답이 문제를 해결 했습니까? 그렇지 않으면 알려주세요. 그랬다면 그것을 수락하십시오. 그게 당신과 저와 나머지 커뮤니티의 도움이됩니다. – bernhardw

답변

1

res.render()을 사용하지 않고 정적 파일을 계속 보내려면 서버에서 전달하는 대신 클라이언트 측에서 사용자 정보를 요청해야합니다.

각도를 사용하여 사용자 세부 정보를 요청하는 몇 가지 방법이 있습니다. 가장 간단한 정보를 필요로하는 컨트롤러에서 그것을 할 아마도 :

// UserController.js 
app.controller('UserController', function (UserService) {  
    UserService.resolveUser().success(function (user) { 
     $scope.user = user; 
    });  
}); 

// UserService.js 
app.factory('UserService', function ($http) {  
    return { 
     resolveUser: function() {    
      return $http.get('/user'); 
     },   
    }  
}); 

당신은 또한 사용자 정보를 요청하고 사용할 수있을 때까지 경로의로드를 지연 $routeProviderresolve 방법을 사용할 수 있습니다.

... 또는 모든 경로에서 사용자 정보가 필요하면 앱을 수동으로 부트 스트랩 할 수 있습니다.

Angular 또는 Node.js와 같은 추가 정보가 필요하면 알려주세요. 여기서는 다루지 않았습니다.

는 편집 :

angular.module('app', []); 

// We only need invoke in order to use the $http service 
// before we are bootstrapped. 
angular.bootstrap().invoke(function ($http) { 

    $http.get('user.json').success(function (data) { 
     angular.element(document).ready(function() { 
      angular.module('app').constant('USER', data); 
      angular.bootstrap(document, ['app']); 
     }); 
    }); 

}); 

angular.module('app').run(function (USER) { 
    console.log(USER); 
}); 

당신은 찾을 수 귀하의 코멘트에 관련하여

, 이것은 당신이 사용자 정보를 요청 $ HTTP를 사용 만 한 후 앱을 부트 스트랩 수있는 방법입니다 라이브 예 : this Plunker.

+0

어떻게 수동으로 응용 프로그램을 부트 스트랩합니까? 나는 그것이 내가 찾고 있었던 것이라고 생각한다. 감사합니다 – happygilmore

+0

위의 편집을 참조하십시오. – bernhardw

+0

시간이 있지만 도움을 많이 주셔서 감사합니다. – happygilmore

관련 문제