检查用户是否具有isAdmin true

时间:2016-05-11 16:54:57

标签: angularjs node.js mongoose

我试图创建一个isAdmin()函数来检查当前用户是否有#34; isAdmin:true"在mongodb。

server.js

app.get('/api/isadmin', function (req, res) {
  User.findById(req.user, function (err, user) {
    if (req.user.isAdmin == true) {
        res.send(user);
    } else {
        return res.status(400).send({ message: 'User is not Admin' });
    }
  });
});

AdminCtrl.js

angular.module('App')
  .controller('AdminCtrl', function ($scope, $http, $auth) {
      $http.get('http://localhost:3000/api/isadmin')
          .then(function (res) {
             $scope.isAdmin = res.data;
      }
 });

当我访问页面/管理员时,它会抛出"无法读取属性' isAdmin' of null"在if里面的app.get中。为什么会出现这种情况,我最好的方法是使用admin函数?

2 个答案:

答案 0 :(得分:1)

您没有使用发回给您的变量,但仍然是请求。

EditText

也许这应该有效(假设如果用户是admin则返回)

答案 1 :(得分:0)

尝试以下

angular.module('App')
  .controller('AdminCtrl',['$scope','$http','$auth', function ($scope, $http, $auth) {
      $http.get('http://localhost:3000/api/isadmin')
          .then(function (res) {
             $scope.isAdmin = res.data;
      }
 }]);