【发布时间】: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 应用程序中公开一个端点。你可以阅读我发给你的教程,看看你是如何做到这一点的。
标签: html angularjs node.js mongoose