angularjs没有发布到数据库

时间:2015-11-20 23:16:56

标签: javascript angularjs node.js

我设置了MEAN应用程序,但是,我的某个模型无法正常运行。出于某种原因,我无法发布到我的数据库。请查看下面的代码:

模式

hitCounter

服务器(部分)

var GroupSchema = Schema({
    name    : String, 
    posts   : [{type: Schema.Types.ObjectId, ref: "Post"}], 
    user    : {type:String, ref:"User" },
    created : {type:Date, default: Date.now}
});

module.exports = mongoose.model('Group', GroupSchema);

控制器(部分)

router.route('/groups')
    .post(function(req, res) {
        var group = new Group();
        group.name = req.body.name;
        group.user = req.body.user;
        group.save(function(err) {
            if (err) 
               res.send(err);

            res.json({ message: 'group created!' });
        });
    }) 
    .get(function(req, res) {
        var current_user = req.user;
        console.log("req: " + req)

        Group.find({ user: current_user._id }).exec(function(err, groups) {
          if (err) throw err;

          // show the admins in the past month
          console.log(groups);
           res.json(groups);
           console.log("current user:" + current_user);
        });
    });

查看(部分)

myApp.controller('sideNav', function ($http, $scope, $timeout, $mdSidenav, $log) {
    var refreshGroup = function(){
        $http.get('/api/groups').success(function(response) {
            console.log('I got the group data! :D');
            $scope.groups = response;
            $scope.group = "";
        });
    }
    refreshGroup();

    $scope.addGroup = function() {
        //$scope.post.url = parenturl;
        console.log($scope.group._id);

        $http.post('/api/groups', $scope.group).success(function(response){
            refreshGroup();
        });

    };
  });

当我点击添加组时,我没有得到任何错误,但是,我的两个ng-model 用户名称没有通过。当我使用 $ scope.group._id, $ scope.group.user $ scope.group.name 从控制器调用console时他们都回来了未定义。

有人能够看到我做错了吗?

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

我对您的代码的观察结果如下 -

  1. 最初在调用refreshGroup()时,它会将$ scope.group设置为空字符串,这会使得group.user和group.name的HTML部分为undefined。

  2. 单击add group后,您将返回相同的未定义值,并且现在将相同的未定义值传递给API并重复循环。

  3. 根据我的理解,不要将$ scope.group设置为空字符串,而只是将其替换为服务器数据,例如$ scope.group = response。

    此外,在使用它们之前,使用默认值初始化$ scope变量是一个好习惯。