passportjs custom callback 200

I am using angularjs and jade templating for my client side. And node and express on the server side. I recently added passport authentication and have the local strategy working fine when the login is attempted with valid credentials. It's the error cases that I'm having trouble with. I have implemented the custom callback to get my error messages to bubble back to the client. Now I get the error messages but the status gets set to 200 somewhere, instead of the 401 I expect.

// login route
app.post("/api/login", function(req, res, next) {
    passport.authenticate("local", function(err, user, info) {
        if (err) {
            return next(err);
        } 
        if (user === false) {
            res.status = 401;
            res.send(info.message);
        } else {
             res.json({success:"User logged in"});
        }
     })(req, res, next);
});

and this is the angular controller that submits the login request:

var loginObj = {email: $scope.login.email,
                password:$scope.login.password};

            $http.post("/api/login", loginObj)
            .success(function(data, status) {
                console.log("successful login");
                console.log("data = " + JSON.stringify(data));
                console.log("status = " + status);
            })
            .error(function(error) {
                console.log("error logging in.");
                console.log("error = " + JSON.stringify(error));
                $scope.error = error;
            }); 

So, suppose I have a password mismatch... the error in my validation routine sets my error message to "Invalid password, please try again." But what I see on the console is:

successful login
data = "Invalid password, please try again."
status = 200

I'm not resetting the status anywhere else. How is it getting set to 200? What am I doing wrong? Sorry, I'm a relative newbie to node and angular, so any help would really be appreciated. I know I'm not understanding some key point, I just can't figure out what. Thanks!

It's res.status(401), not res.status = 401. res.status() is a function.