Как отправить ответ http ошибки в express / node js?
поэтому на странице входа в систему я отправляю учетные данные из angular, чтобы выразить через get запрос.Что я хочу сделать, так это то,что если найдено в базе данных, отправьте ответ и обработайте его в angular else, если не найдено в db, я хочу, чтобы express отправил ответ на ошибку и обработал его функцию ответа на угловую ошибку, но мой код не работает.
угловой контроллер:
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");
//
}
});
}
2 ответов
в узле вы можете использовать res.status()
для отправки ошибки:
return res.status(400).send({
message: 'This is an error!'
});
в угловом вы можете поймать его в ответе обещания:
$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
}
);