使用Node.js

时间:2016-04-18 20:59:11

标签: javascript node.js mongodb

我正在尝试将表单数据从一个页面发送到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?

非常感谢任何帮助。

0 个答案:

没有答案