Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在角度视图中获取节点当前用户_Angularjs_Node.js_Sails.js - Fatal编程技术网

Angularjs 如何在角度视图中获取节点当前用户

Angularjs 如何在角度视图中获取节点当前用户,angularjs,node.js,sails.js,Angularjs,Node.js,Sails.js,我正在使用sails.js后端,使用passport进行身份验证,以及angular.js前端。我的应用允许用户登录并保存他们的信息。现在,我可以通过angular controller中的$http获取这些用户的列表,并在视图中显示它们。然而,我完全无法只获得当前用户。我对这种编程非常陌生,到目前为止,网上没有任何东西能真正帮助我理解我需要做什么。是否有人可以提供一个示例或告诉我,仅检索当前登录用户而不是所有用户需要做些什么?一旦您通过Passport对用户进行身份验证,它会将当前用户保存到请

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

一旦您通过Passport对用户进行身份验证,它会将当前用户保存到
请求
对象中,作为
请求。用户


您可以在API中创建一个返回该对象的端点,然后在API/controllers/UserController.js中使用Angular获取该对象。

。此sails函数返回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中,确保将角度路线设置为视图

config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/view', {templateUrl: 'partials/view.html', controller: 'myCtrl'});
}]);
将此代码(带有您自己的变量/路由/服务器信息)放置在正确的位置后,您可以像这样访问视图中的当前用户

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

{{currentUser.email}}
{{currentUser.username}}
{{currentUser.etc}

我在互联网上到处搜索了一周,想知道如何做到这一点,最终找到了这个答案。我看到很多人(尤其是在这个网站上)都问过同样的问题,而我从来没有真正找到一个好的、明确的答案。所以我想我会把我的想法作为我自己问题的答案发布出来。

谢谢你的回复。我使用的是sails后端,不是express。我知道信息存储在req.user中。我只是不知道如何在angular.js控制器中获取req.user中的内容,以便在视图中使用。啊,抱歉。如果您有一个为auth或users指定的控制器,您可以在其中创建一个端点来执行此操作。类似于
/me
。语法几乎相同-您仍然在创建一个函数,该函数接受
请求
响应
,只需将
请求.user
发送到前端即可。至于Angular-您是否在使用auth框架?我在后端有一个AuthController.js。我到底是谁?我已经看过很多关于它的书,但是我没有得到太多的解释。此外,一旦写入,函数如何将req.user发送到前端?我还不知道angular的auth框架。我应该是吗?