したがって、ログインページで、angularから資格情報を送信して、getリクエストで表現します。データベースで見つかった場合、応答を送信し、angularで処理します。エラー応答を送信し、それを処理するangularエラー応答関数を処理しますが、私のコードは機能しません。
角度コントローラー:
myapp.controller('therapist_login_controller', ['$scope', '$localStorage', '$http',
function($scope, $localStorage, $http) {
$scope.login = function() {
console.log($scope.username + $scope.password);
var data = {
userid: $scope.username,
password: $scope.password
};
console.log(data);
$http.post('/api/therapist-login', data)
.then(
function(response) {
// success callback
console.log("posted successfully");
$scope.message = "Login succesful";
},
function(response) {
// failure callback,handle error here
$scope.message = "Invalid username or password"
console.log("error");
}
);
}
}
]);
APP.js:
app.post('/api/therapist-login', therapist_controller.login);
コントローラ:
module.exports.login = function(req, res) {
var userid = req.body.userid;
var password = req.body.password;
console.log(userid + password);
Credentials.findOne({
'userid': [userid],
'password': [password]
}, function(err, user) {
if (!user) {
console.log("logged err");
res.status(404); //Send error response here
enter code here
} else {
console.log("login in");
}
});
}
Nodeでres.status()
を使用してエラーを送信できます。
return res.status(400).send({
message: 'This is an error!'
});
Angularでは、promise応答でキャッチできます。
$http.post('/api/therapist-login', data)
.then(
function(response) {
// success callback
console.log("posted successfully");
$scope.message = "Login succesful";
},
function(response) {
// failure callback,handle error here
// response.data.message will be "This is an error!"
console.log(response.data.message);
$scope.message = response.data.message
}
);
または、Error
クラスのインスタンスを使用します
response.status(code).send(new Error('description'));