如何在 angular 视图中获取节点当前用户

How to get node current user in an angular view

我正在使用 sails.js 后端,使用护照进行身份验证,以及 angular.js 前端。我的应用程序允许用户登录并保存他们的信息。现在,我可以在 angular 控制器中通过 $http 获取这些用户的列表,并将它们显示在视图中。但是,我完全无法获得当前用户。我对这种编程还很陌生,到目前为止,网上没有任何东西能真正帮助我理解我需要做什么。谁能提供一个例子或告诉我需要做什么才能只检索当前登录的用户,而不是所有用户?

一旦您通过 Passport 对用户进行身份验证,它会将当前用户作为 request.user.

保存到 request 对象中

您可以在 API 中创建一个 returns 该对象的端点,然后使用 Angular 获取它。

在api/controllers/UserController.js。此帆函数 returns 当前用户信息 req.user.

   module.exports = {
     getUser: function(req,res) {
       return res.send(req.user);
};

在config/routes.js。这是 UserController.js 中 'getUser' 函数的路径。

'/getUser': {
   controller: 'UserController',
   action: 'getUser'
}

在assets/js/controllers.js中,这里是对UserController.js中的'getUser'函数的$http请求。这就是从 req.user 获取信息到前端的方式。

angular.module('myApp.controllers', []).
  controller('myCtrl', ['$scope', '$http', function($scope, $http) {
   $http.get("http://localhost:1337/user/getUser").then(function(result) { 
     $scope.currentUser = result.data;
  })
}]);

在 assets/js/app.js 中,确保您的 angular 路线设置为您的视图。

config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/view', {templateUrl: 'partials/view.html', controller: 'myCtrl'});
}]);

将此代码(带有您自己的 variables/routes/server 信息)放在正确的位置后,您可以像这样访问视图中的当前用户

<div ng-controller="myCtrl">
   {{ currentUser.email }} <br>
   {{ currentUser.username }} <br>
   {{ currentUser.etc }}
 </div>

我在互联网上上下搜索了一个星期,寻找有关如何执行此操作的答案,并最终想出了这个。我看到很多人(尤其是在这个网站上)问过同样的问题,但我从来没有真正找到一个好的、明确的答案。所以我想我会 post 我想出的答案来回答我自己的问题。