如何在express / node js发送错误http响应?

所以在login页面我发送证书从angular度来expression通过获取请求。我想要做的是,如果在数据库中发现,发送响应和angular度处理,否则,如果没有在数据库中find我想快递发送错误响应,并处理它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 } );