【发布时间】:2026-01-24 19:10:01
【问题描述】:
我正在尝试获取用户输入并将其保存到我的数据库中的集合中。我正在使用 Node.js、mongodb、mongoose、express.js 和 ajax。
我目前正在尝试在用户提交表单并获取输入并将其从我的控制器文件中的 module.exports 内部保存到我的数据库中时发布。
当所有代码都在 server.js 内的一个位置时,我能够完成这项工作,但为了尝试适当地分解我的代码,我试图分离成一个 MVC 系统。
我的 addProductGroup 控制器如下所示:
//bring in models of data
var groups = require('../models').Groups;
var express = require('express');
var app = express();
//page functions go inside of module.exports
module.exports = {
index: function(req, res){
groups.find({}, function(err, groups){
if(err){
console.log(err);
}else{
res.render('addProductGroup',{title: 'Admin Add Group', adminloggedin: true, subtitle: 'Add a Group', underheaderp: ''});
app.post('/admin/addProductGroup', function(req,res){
var newGroupName = req.body.groupname;
new groupName({
groupName: req.body.groupname,
}).save(function(err, doc){
if(err){
res.json(err)
}
else {
res.render('addProductGroup',{title: 'Admin ASS Group', adminloggedin: true, subtitle: 'Add a Group', underheaderp: ''});
}
});
});
}
});
}
}
我的控制器正在从我的组集合中获取我的数据,然后呈现我的页面。然后,当用户发布数据时,我试图让它获取发布数据,将其保存到我的数据库中,然后呈现相同的页面。我在函数的嵌套和操作顺序方面玩了很多。
我的 groups.js 模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var GroupsSchema = new Schema ({
groupName: String
});
module.exports = mongoose.model('groups', GroupsSchema);
var groupName = module.exports;
我正在为我的视图使用车把模板。
那么在我的 module.exports 中包含所有这些是可能完成的事情吗? 我是否需要尝试在我的 module.exports 之外编写一个函数来完成这项工作? 如果您需要查看我的任何其他文件,请告诉我。 任何帮助是极大的赞赏。
【问题讨论】:
标签: javascript node.js mongodb express mongoose