Angularjs MongoDB没有向Mongoose发布任何数据

Angularjs MongoDB没有向Mongoose发布任何数据,angularjs,node.js,mongodb,mongoose,mean-stack,Angularjs,Node.js,Mongodb,Mongoose,Mean Stack,我正在制作一个具有平均堆栈的应用程序,但在将数据发布到数据库时遇到问题。当我按下submit按钮时,表单数据会被清除,就像帖子成功时应该做的那样,但是当我转到数据库时,会出现一个新文档,其中除了id和u_v之外没有任何内容 没有抛出任何错误,因为有数据被发布到数据库,但页面底部的mongodb文档中没有正确的数据 将数据发布到的表单如下所示: <input name="userName" type="String" class="form-control" id="userName" ng

我正在制作一个具有平均堆栈的应用程序,但在将数据发布到数据库时遇到问题。当我按下submit按钮时,表单数据会被清除,就像帖子成功时应该做的那样,但是当我转到数据库时,会出现一个新文档,其中除了id和u_v之外没有任何内容

没有抛出任何错误,因为有数据被发布到数据库,但页面底部的mongodb文档中没有正确的数据

将数据发布到的表单如下所示:

<input name="userName" type="String" class="form-control" id="userName" ng-model="formData.userName" placeholder="Your Name">
      <input name="game" type="String" class="form-control" id="game" ng-model="formData.game" placeholder="The game?">
      <input name="userPoint" type="Number" class="form-control" id="userPoint" ng-model="formData.userPoint" placeholder="Points?">
      <button type="submit" class="btn btn-default" ng-click="createScore()">Submit</button>
这是数据库的Mongoose模型:

var Score = mongoose.model("Score", {
    userName: String,
    game: String,
    userPoint: Number
}, "score");
这是my express应用程序的路线。post:

app.post("/api/scores", function(req, res){
    Score.create({
        userName:req.body.userName,
        game:req.body.game,
        userPoint:req.body.userPoint
    }, function(err, score) {
            if (err)
                res.send(err);

            Score.find(function(err, score) {
                if (err)
                    res.send(err)
                res.json(score);
            });
        });
});
发布数据时,mongodb文件文档如下所示:

{
    "_id": {
        "$oid": "54cbf3d1fbaaf10300000001"
    },
    "__v": 0
}
我在想也许名字是错的,比如userPoints和userPoint,但我让sue知道它们都是一样的。另外,我对这方面还不熟悉,所以如果您有任何教程可以帮助具体的主题,请随时与我们分享

编辑1:
我在node.js部分做了一个console.log,上面写着req.body.userName、req.body.game等等。在日志中,它们都是未定义的。我一直在网上寻找解决方案,但似乎找不到解决方案。我曾尝试在HTML文件字符串中创建类型,而不是文本,但这似乎不起作用。有什么想法吗?

好的,所以我解决了我的问题

我试图以表单数据的形式发布,而不是以x-www-form-urlencoded的形式发布

在我的core.js中,我将其放在createScore方法中:

$http({
            method  : 'POST',
            url     : '/api/scores',
            data    : $.param($scope.formData), 
            headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).success(function(response){
            $scope.formData = {};
            $scope.scores = response;
            console.log(response);
        });

我希望这对别人有帮助

为什么要在创建回调中执行Score.find?因为当我添加新分数时,我希望它自动刷新,而不是用户刷新页面以查看结果。我认为他的观点是find从创建回调返回相同的对象。您可以使用res.jsonscore代替Score.find。另外,您是否已打印了req.body?如果您的属性未定义,您可能没有您认为具有的对象结构。好的,现在这更有意义了。对象结构呢,因为我把所有的东西都命名为相同的。用户名、游戏和用户点在我认为的所有内容中都正确命名:。你能不能更详细一点?谢谢
$http({
            method  : 'POST',
            url     : '/api/scores',
            data    : $.param($scope.formData), 
            headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).success(function(response){
            $scope.formData = {};
            $scope.scores = response;
            console.log(response);
        });