如何在 Angularjs 中调用 Nodejs 方法

Posted

技术标签:

【中文标题】如何在 Angularjs 中调用 Nodejs 方法【英文标题】:How to call a Nodejs method in Angularjs 【发布时间】:2016-10-25 11:05:23 【问题描述】:

我需要一些关于 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.

【问题讨论】:

我认为您应该阅读一些关于 REST 以及使用 node.js 和 angula 制作和使用服务的内容。这似乎是一个很好的教程:scotch.io/tutorials/… 基本上你需要从 Angular 发出一个 http 请求并在你的 node.js 应用程序中公开一个端点。你可以阅读我发给你的教程,看看你是如何做到这一点的。 【参考方案1】:

解决这个问题的方法是在你的 node.js 应用中为这些方法创建路由。创建路由后,使用 Angular 应用程序中的 $http 访问这些 URL。这将调用 node.js 应用程序中的方法。

【讨论】:

以上是关于如何在 Angularjs 中调用 Nodejs 方法的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 NodeJS + AngularJS 从文件中删除一些奇怪的错误

在哪里以及如何将 nodejs 与 angularjs 一起使用

如何在 Mongoose 中更新/更新文档/数据? Passport MongoDB、Express、AngularJS、Nodejs

使用 nodejs、angularjs 和 paypal sdk 付款结果 cors 错误

如何将实时数据从 nodejs 服务器推送到 AngularJS?

使用Angularjs和nodejs进行Mongodb CRUD操作-如果数据已经存在,如何从数据库中获取消息?