Javascript 使用Node.js向MongoDB提交数据时出现的问题

Javascript 使用Node.js向MongoDB提交数据时出现的问题,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在尝试将表单数据从页面发送到Node.js中的MongoDB 我遇到的问题是当我单击“添加组”按钮提交数据时。。该页面试图完成请求,但在尝试将数据推送到数据库时,该页面似乎卡住了。因此,它只是坐在那里,卡住了,试图获取输入的数据并将其放入数据库 这是我的团队模型: var mongoose = require('mongoose'), Schema = mongoose.Schema, path = require('path'); var GroupsSchema

我正在尝试将表单数据从页面发送到Node.js中的MongoDB

我遇到的问题是当我单击“添加组”按钮提交数据时。。该页面试图完成请求,但在尝试将数据推送到数据库时,该页面似乎卡住了。因此,它只是坐在那里,卡住了,试图获取输入的数据并将其放入数据库

这是我的团队模型:

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    path = require('path');

    var GroupsSchema = new Schema({
        groupName: {type: String}
    });

    GroupsSchema.virtual('uniqueId')
    .get(function(){
        return this.filename.replace(path.extname(this.filename), '');
    });

module.exports = mongoose.model('Groups', GroupsSchema);
这是我的组控制器:

var Models = require('../models');

module.exports = {
    index: function(req, res){
        var viewModel = {
            groups: []
        };

        Models.Group.find({}, function(err, groups){
            if(err){
                throw err;
            }else{

            viewModel.groups = groups;
            res.render('addGroup', {title: 'Admin Add Product Group', adminloggedin: true, subtitle: 'Add a Group', underheaderp: ''});
            }
        }); 

    },

    create: function(req, res){
        var saveGroup = function(){
            Models.Group.find({}, function(err, groups){
                if(groups.length > 0){
                    saveGroup();
                }else{
                    Models.Group.find({},function(err, groups){
                        if(err){
                            throw err;
                        }else{
                    var newGrp = new Models.Group({
                        groupName: req.body.groupname
                    });
                    newGrp.save(function(err, group){
                        console.log('Successfully inserted Group');
                        res.redirect('admin/addGroup');
                    });
                        }
                });
                    }
            });
        };
        saveGroup();
    }
};
我目前的路线:

var express = require('express'),
    router = express.Router(),

    addGroup = require('../controllers/addGroup');

module.exports = function(app){

    router.get('/admin/addGroup', addGroup.index);
    router.post('/admin/addGroup', addGroup.create);

    app.use(router);
}
和我的addGroup车把页面

<!-- Add a Product Group Form -->
    <div class="row">
        <div class="col-md-6">
            <form action="/admin/addGroup" method="post">
                <fieldset class="form-group">
                    <label for="newGroupName">Group Name:</label>
                        <input type="text" class="form-control" name="groupname">
                </fieldset>
                <fieldset class="form-group">
                    <label for="groupImageFolder">Image Folder Name:</label>
                        <input type="text" class="form-control" name ="groupImageFolder">
                </fieldset>
            <button type="submit" class="btn btn-success" type="button">Add Group</button>
            </form>
        </div>
    </div>

组名:
图像文件夹名称:
添加组
不幸的是,我还没有找到调试我的应用程序的好方法,因为我还是一个新的程序员。任何建议都会很好

问题一定在我的控制器中:创建 我可能在哪里定义我的var newGrp并试图将其设置为我的组模型

我如何修复它,使其将输入的数据保存到MongoDB


非常感谢您的帮助。

如果
groups.length>0
,为什么要调用
saveGroup()
?它是递归调用的,永远不会结束。我试图做一个糟糕的努力检查,看看它是否已经存在,但这是一个很大的错误。我把它拿出来,用if(err){saveImage();}替换了它,现在它工作得非常好!!!是的,这是个错误。也可以使用
Models.Group.count()
而不是
Models.Group.find()
,因为
find()
加载所有记录,但
count()
只返回记录数。不要调用
Models.Group.find()
两次。谢谢!我甚至不知道我怎么会打了两次电话,但它是固定的,仍然有效。再次感谢您的帮助如果
groups.length>0
,为什么要调用
saveGroup()
?它是递归调用的,永远不会结束。我试图做一个糟糕的努力检查,看看它是否已经存在,但这是一个很大的错误。我把它拿出来,用if(err){saveImage();}替换了它,现在它工作得非常好!!!是的,这是个错误。也可以使用
Models.Group.count()
而不是
Models.Group.find()
,因为
find()
加载所有记录,但
count()
只返回记录数。不要调用
Models.Group.find()
两次。谢谢!我甚至不知道我怎么会打了两次电话,但它是固定的,仍然有效。再次感谢你的帮助