如何在Angularjs中调用Nodejs方法

时间:2016-06-23 08:28:11

标签: html angularjs node.js mongoose

我需要一些关于nodejs和angular的帮助,我需要使用nodejs获得结果并使用angular将它们显示为HTML。如何从HTML中调用user.auth()。这是我的控制器的代码:

     var userModel = require('../models/users');

        var users = {};

        // controller that handles user login request
        users.auth = function (req, res) {

        if(!req.body.username || !req.body.password)
        {
            res.status(400);
            res.send({status:'error',error:'Username or password is missing.'});
        }

        var user = userModel.authUser(req.body.username, req.body.password);

        user.then(function(users){
            res.send(users);
        }, function(){
            res.send({status:'error',error:'Error occured while fetching data from database.'});
        });

    };

module.exports = users;

这是模型文件夹中的代码:

//Function to auth user baed on username and password.

userModel.authUser = function(username, password){
var results = q.defer();
User.findOne({username: username, password: password},function(err, dbuser) {
    if (err){
        results.reject(err);
    } 


    if(dbuser){

        dbuser.activeSession = makeSessionId();
        dbuser.markModified('string');
        dbuser.save(function(err, dbuser){
            var response = {};

            response.status = 'success';
            response.sessionId = dbuser.activeSession;
            response.username = dbuser.username;
            results.resolve(response);
        });


    } else{
        var response = {};
        response.status = 'error';
        response.error = 'Invalid username or password';
        results.resolve(response);  
    }
});

return results.promise;
}

我需要从HTML文件调用这些方法,但我不知道如何。我不能使用.ejs.

1 个答案:

答案 0 :(得分:0)

问题的解决方案是在node.js应用中为这些方法创建路由。创建路线后,使用角度应用中的$http点击这些网址。这将调用node.js应用程序中的方法。