问题描述
我有一个 Node.js 应用程序,我正在提交一个包含要插入 NeDB 数据库的数据的表单。除了数组中的一些嵌套对象显示为未定义外,表单提交工作正常。
我的表格:
<form method="post" role="form">
<div class="form-group">
<b><label for="date">Week Commencing</label></b>
<input type="date" class="form-control" id="dateCommencing" name="date" placeholder="dd-mm-yyyy" required>
</div>
<div class="form-group">
<b><label for="activity">Activity</label></b>
<input type-"text" class="form-control" id="activity" name="activity" placeholder="Activity" required>
</div>
<div class="form-group">
<b><label for="exercise1">Exercise 1</label></b>
<select class="form-control" name="exercise1" id="exercise1" required>
<option value="Squat">Squat</option>
<option value="Deadlift">Deadlift</option>
<option value="Bench Press">Bench Press</option>
<option value="Overhead Press">Overhead Press</option>
</select>
</div>
<div class="form-group">
<b><label for="exercise1sets">Exercise 1 Sets</label></b>
<input type="number" id="exercise1sets" name="exercise1sets" min=1 max=10 step=1 required>
</div>
<div class="form-group">
<b><label for="exercise1reps">Exercise 1 Reps</label></b>
<input type="number" id="exercise1reps" name="exercise1reps" min=1 max=20 step=1 required>
</div>
<div class="form-group">
<b><label for="exercise1weight">Weight</label></b>
<input type="text" id="exercise1weight" name="exercise1weight" required>
</div>
<div class="form-group">
<b><label for="goal1">Goal 1</label></b>
<input type="text" id="goal1" name="goal1" required>
</div>
<div class="form-group">
<b><label for="goal2">Goal 2</label></b>
<input type="text" id="goal2" name="goal2" required>
</div>
<div class="form-group">
<b><label for="goal3">Goal 3</label></b>
<input type="text" id="goal3" name="goal3" required>
</div>
<div class="form-group">
<input type="submit" value="Post entry" class="btn btn-primary">
</div>
</form>
这是我在我的模型中插入到数据库的方法(省略了额外的表单元素,这会导致多个对象带有“练习”):
createPlan(dateCommencing,activity,exercise1,exercise1sets,exercise1reps,exercise1weight,goal1,goal2,goal3) {
console.log('createPlan() method called.')
var entry = {
dateCommencing: dateCommencing,activity: activity,exercise: [{
name: exercise1,sets: exercise1sets,reps: exercise1reps,weight: exercise1weight
}],goals: {
goal1: goal1,goal2: goal2,goal3: goal3
}
}
console.log('Entry created.');
this.db.insert(entry,function(err,doc) {
if (err) {
console.log('Error inserting document to DB.',err);
} else {
console.log('Document added successfully.',doc);
}
})
}
exports.post_new_plan = function(req,res) {
console.log('post_new_plan called.');
db.createPlan(req.body.dateCommencing,req.body.activity,req.body.exercise1,req.body.exercise1sets,req.body.exercise1reps,req.body.exercise1weight,req.body.goal1,req.body.goal2,req.body.goal3);
res.redirect('/plans');
}
该方法在某种程度上有效,因为这是添加 db 条目时控制台中的输出:
Document added successfully. {
dateCommencing: undefined,activity: 'test activity',exercise: [
{
name: 'Squat',sets: undefined,reps: undefined,weight: undefined
},{
name: 'Deadlift',{
name: 'Bench Press',{
name: 'Overhead Press',weight: undefined
}
],goals: { goal1: 'test goal 1',goal2: 'test goal 2',goal3: 'test goal 3' },_id: '8yJ68YiWjZLY7pRX'
}
我只是不明白为什么它不能解析表单中的“集合”、“代表”和“重量”数据。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)