2016-06-23 31 views
-1

Ich brauche Hilfe mit Nodejs und Winkel, ich brauche Ergebnisse mit Nodejs und zeigen sie in HTML mit Winkel. Wie kann ich user.auth() aus HTML aufrufen. Hier ist der Code meines Controller:So rufen Sie eine Nodejs-Methode in Angularjs

 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; 

und dies ist der Code in Modellordnern:

//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; 
} 

Ich brauche diese Methoden von HTML-Datei zu nennen, aber ich weiß nicht, wie. Ich bin nicht erlaubt zu verwenden .ejs.

+1

Ich denke, Sie sollten ein wenig über REST und machen und konsumierende Dienste mit node.js und Angula lesen. Dies scheint wie ein gutes Tutorial: https://scotch.io/tutorials/node-and-angular-to-do-app-controllers-and-services Grundsätzlich müssen Sie eine http-Anfrage von eckigen und einen Endpunkt exponieren in Ihrer node.js-Anwendung. Sie können das Tutorial lesen, das ich Ihnen gesendet habe, um zu sehen, wie genau Sie das tun können. –

Antwort

0

Eine Lösung für das Problem besteht darin, Routen für diese Methoden in Ihrer node.js App zu erstellen. Nachdem Sie Routen erstellt haben, klicken Sie auf diese URLs, indem Sie $http in Ihrer eckigen App verwenden. Dies ruft Methoden in Ihrer node.js-Anwendung auf.

Verwandte Themen