Я пытаюсь создать веб-приложение отслеживания целей, которое при вводе формы для создания новой записи журнала отправляет сообщения в базу данных MongoDB и отображается в таблице в веб-приложении. Однако я не могу понять, как ввести свои данные в MongoDB, а затем извлечь из MongoDB для публикации в таблице в веб-приложении.
Пока что я создал схему goose, которая хорошо работает, и я сделал набросок для поста запроса. Также я создал файл Pug JS для клиентской части. Код следует:
Схема почтового запроса
GoalTracker.post('/goals/log/:id', function(req, res){
let goal = {};
let query = {_id:req.params.id};
let oldArr = goal.goalLog;
let newArr = [req.body.date, req.body.units];
goal.goalLog = oldArr.concat(newArr);
Goal.update(query, goal, function(err){
if(err){
console.log(err);
return;
}
});
res.redirect('/goals/'+currentGoalId);
res.send('Success');
});
Пн goose Схема
let mongoose = require('mongoose');
let goalSchema = mongoose.Schema({
title:{
type: String,
required: true
},
start:{
type: String,
required: true
},
goalAmount:{
type: Number,
required: true
},
units:{
type: String,
required: true
},
currentProgress:{
type: Number,
required: true
},
goalLog:{
type: Array,
required: true
}
});
let Goal = module.exports = mongoose.model('Goal', goalSchema);
Мопс JS Фрагмент кода для клиентской части
li.list-group-item.task
h3 Goal Log
.flex-container.txtb
table(style='width:100%')
tbody
- let x = 0;
while x < goal.goalLog.length/2
tr=x++
- let n = 0;
while n < goal.goalLog.length
td= goal.goalLog[n]= n++
h3 Add Goal Entry
form(method='POST', action='/goals/log/'+goal._id)
input.txtb(name='date' type='text' placeholder='Date (mm/dd/yyyy)')
input.txtb(name='units' type='number' placeholder=goal.units)
input.txtb(type='submit' value='Submit Entry')
Схема моего плана
Это очень запутанная формулировка для моего вопроса, но я не знаю, как еще сказать, и я не могу понять, как это сделать, потому что я просмотрел документы и четыре формы ответов.
Любой Помощь будет принята с благодарностью!