所以在登录页面我通过获取请求从angular发送凭据。我想做的是,如果在数据库中找到,发送响应并在角度中处理它如果没有在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");
//
}
});
}
答案 0 :(得分:20)
在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
}
);
答案 1 :(得分:0)
或使用Error
类
response.status(code).send(new Error('description'));