現在のユーザーが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;
}
}]);
私は前にこれを試してみました(ユーザーisAdminがあれば、あなたが返されると仮定して)動作するはずです、と私は同じエラーを取得します。 – KujAslani
あなたはGETリクエストと一緒に何も送っていません。これがreq.userが空の理由です –
何らかの理由で今動作しているようです。ユーザーがadminの場合、apiをチェックする関数をどのように作るのですか? – KujAslani