2016-05-11 18 views
0

現在のユーザーがmongodbに "isAdmin:true"を持っているかどうかをチェックするisAdmin()関数を作成しようとしています。ユーザーが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; 
     } 
}); 

私はページ/管理者にアクセスすると、それがあれば内部app.getに "ヌルのプロパティを読み取ることができない 'isAdmin'" をスローします。これがなぜ発生するのですか、これをisAdmin関数にする最適な方法は何ですか?あなたはあなたに戻って送信された変数を使用して、まだREQされていません

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; 
     } 
}]); 

答えて

1

+0

私は前にこれを試してみました(ユーザーisAdminがあれば、あなたが返されると仮定して)動作するはずです、と私は同じエラーを取得します。 – KujAslani

+0

あなたはGETリクエストと一緒に何も送っていません。これがreq.userが空の理由です –

+0

何らかの理由で今動作しているようです。ユーザーがadminの場合、apiをチェックする関数をどのように作るのですか? – KujAslani

0

試してみます。

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' }); 
    } 
    }); 
}); 

は多分これは

関連する問題