2016-06-23 32 views
-1

我需要一些關於nodejs和angular的幫助,我需要使用nodejs獲取結果並以角度將它們顯示爲HTML。我如何從HTML調用user.auth()。這裏是我的控制器代碼:如何在Angularjs中調用Nodejs方法

 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

我想你應該讀一點關於REST和使用node.js和angula製作和使用服務。這看起來像一個很好的教程:https://scotch.io/tutorials/node-and-angular-to-do-app-controllers-and-services 基本上你需要從角度發出一個http請求並公開一個端點在你的node.js應用程序中。你可以閱讀我發給你的教程,看看你能做到這一點。 –

回答

0

問題的解決方案是在node.js應用程序中爲這些方法創建路由。創建路線後,從角度應用程序中使用$http擊中這些網址。這將調用node.js應用程序中的方法。

相關問題