2016-05-11 4 views
0

Я пытаюсь создать функцию isAdmin(), которая проверит, имеет ли текущий пользователь «isAdmin: true» в mongodb.Проверьте, есть ли у пользователя isAdmin true

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' нуль" в, если внутри app.get , Почему это происходит, и каков оптимальный способ сделать эту функцию isAdmin?

ответ

1

Вы не используете переменную отправляется обратно к вам, но все-таки REQ.

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

Может быть, это должно работать (если вы вернулись, если пользователь IsAdmin)

+0

Я попытался это раньше, и я получаю ту же ошибку. – KujAslani

+0

Вы не отправляете ничего рядом с вашим запросом GET. вот почему req.user пуст? –

+0

Кажется, теперь это работает по какой-то причине. Как я могу сделать функцию, которая проверяет api, если пользователь является администратором? – KujAslani

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; 
     } 
}]); 
Смежные вопросы