MEAN Stack,从其他模块更新用户

时间:2015-02-19 18:36:05

标签: javascript angularjs mongodb module meanjs

我在运行客户端函数后更新/保存用户时出现问题,该函数将_id(另一个名为course的模块)添加到用户。我所拥有的概述是一个名为课程的CRUD模块,我希望用户能够加入该课程,所以这样做的功能如下 (courses.client.controller.js):

    $scope.joinCourse = function() {

        var course = $scope.course;
        var user = $scope.authentication.user; 
        var flag = false;
        if ($scope.insertedCCode === course.courseCode) {
            for (var i in user.joinedCourses) {
                if (user.joinedCourses[i] === course._id) {
                    flag = true;  // Already joined the course
                }
            }
            if (!flag) {
                user.joinedCourses.push(course._id);
            }
            course.$updateUser(function(response) {
                $scope.success = true;
                Authentication.user = response;
            }, function(response) {
                $scope.error = response.data.message;
            });
    }

updateUser是我用来保存对用户所做的新更改的服务器端功能,但我不确定这是否是添加或使用后端功能的正确方法。它与更新配置文件更改时完全相同。如果我在加入课程后更新我的个人资料,我发现它会保存课程。

exports.updateUser = function(req, res) {
// Init Variables
var user = req.user;
var message = null;

// For security measurement we remove the roles from the req.body object
delete req.body.roles;

if (user) {
    // Merge existing user
    user = _.extend(user, req.body);
    user.updated = Date.now();  // Join date??

    user.save(function(err) {
        if (err) {
            return res.status(400).send({
                message: errorHandler.getErrorMessage(err)
            });
        } else {
            req.login(user, function(err) {
                if (err) {
                    res.status(400).send(err);
                } else {
                    res.json(user);
                }
            });
        }
    });
} else {
    res.status(400).send({
        message: 'User is not signed in'
    });
}};

当我运行joinCourse函数时,它会给出TypeError的错误:undefined不是Scope。$ scope.joinCourse中的函数,在课程的行中。$ updateUser被调用(来自块1)。所以我传递了与用户相同的东西。$ update需要,为什么它不起作用?

要彻底解决这个问题,我试图从其他模块更新用户,而且我不确定如何做到这一点。

非常感谢任何帮助!

0 个答案:

没有答案