【问题标题】:Why not all values store in mongodb?为什么不是所有值都存储在 mongodb 中?
【发布时间】:2020-03-22 02:56:45
【问题描述】:

我想使用 MEAN APPLICATION 将表单数据存储在“moongodb”中

当我通过 Angular 表单或使用邮递员发布表单值时,所有值都不会存储,甚至不会为它们创建任何空间。

这是课程模型

const mongoose = require('mongoose');
const CourseSchema = mongoose.Schema({
        degprog:String,
        session:String,
        semester:String,
        c_code:String,
        c_title:String,
        c_hours:String,
        c_goals:String,
        m_quiz:Number,
        m_assign:Number,
        m_lab:Number,
        m_mid:Number,
        m_final:Number,
        m_total:Number,
        c_coprdinator:String,
        c_url:String,
        c_catelog:String,
        c_tbook:String,
        c_reference:String,

        teacher:{
            type:mongoose.Schema.Types.ObjectId,
            ref:"teacher",

        }
});
module.exports = mongoose.model('course', CourseSchema);

这是课程控制器文件

const Teacher = require('../models/teacher.model.js');
const mongoose = require('mongoose');
// Create and Save a new Course


exports.create = async (req, res) => {
    if (!req.body.courseCode) {
         return res.status(400).send({
            message: "Note Course Code can not be empty"
        });
    }
    //searching for a teacher to add course

    const teacher = await Teacher.findOne({ _id: req.params.teacherId });
    // Create a Course
    const course = new Course();
    course._id = mongoose.Types.ObjectId(),
     course.degprog = req.body. degreeProgram;
     course.session = req.body.session;
    course.semester = req.body.semester;
     course.c_code = req.body.courseCode;
    course.c_title = req.body.courseTitle;
    course.c_hours = req.body.creditHours;
    course.m_quiz = req.body.quiz;
    course.m_assign = req.body.assignment;
    course.c_coprdinator = req.body.courseCoordinator;
    course.c_url = req.body.url;
    course.c_catelog = req.body.courseCatelog;
    course.c_tbook = req.body.textbook;
    course.c_reference = req.body.reference;
    course.c_goals = req.body.goals;
    course.teacher = req.body.teacherId;
    course.m_lab = req.body.lab;
    course.m_mid = req.body.mid;
    course.m_final = req.body.final;
     course.m_total = req.body.total;

    //save course in dataBase and attach to particular teacher 
    await course.save();
    await teacher.courses.push(course._id);
    await teacher.save();
    res.send(course);

};

这个是路由文件

app.post('/teacher/:teacherId/course',  course.create);

仅在“URL”值存储之前。为什么剩余的值没有保存?

【问题讨论】:

  • 只有在使用 Angular 响应式表单或邮递员成功发布数据时,此数据才会保存在数据库中 { "_id":"5ddd47c1a4de66183cf9ab64", "degprog":"MCS", "session “:”2017-19,“学期”:“2nd”,“c_code”:“424234”,“c_title”:“SE”,“c_hours”:“4234”,“m_quiz”:77,“m_assign”: 88,“c_coprdinator”:“88”,“c_url”:“fMu”,“m_lab”:888,“__v”:0 }
  • FYI
  • @DanStarns 你是什么意思?
  • 你使用的是 body-parser 还是 express.json() ?
  • 你有 console.log(req.body) 吗?

标签: node.js mongodb angular7 angular-reactive-forms


【解决方案1】:

传入的 req.body 值不匹配,在 console.log 传入的值与架构不匹配之后,我确实使用 @DanStarns 的指南修复了它,因此值没有存储并且没有为它们创建任何空间。

这是有效的解决方案

const Teacher = require('../models/teacher.model.js');
const Course = require('../models/course.model');
const mongoose = require('mongoose');
// Create and Save a new Course


exports.create = async (req, res) => {
    if (!req.body.courseCode) {
        return res.status(400).send({
            message: "Note Course Code can not be empty"
        });
    }
    //searching for a teacher to add course
    console.log(req.body);
    const teacher = await Teacher.findOne({ _id: req.params.teacherId });
    // Create a Course
    const course = new Course();
    course._id = mongoose.Types.ObjectId(),
     course.degprog = req.body. degreeProgram;
     course.session = req.body.session;
    course.semester = req.body.semester;
     course.c_code = req.body.courseCode;
    course.c_title = req.body.courseTitle;
    course.c_hours = req.body.creditHours;
    course.m_quiz = req.body.quiz;
    course.m_assign = req.body.assignment;
    course.c_coordinator = req.body.courseCoordinator;
    course.c_url = req.body.url;
     course.c_catelog = req.body.currentCatelogDescription;
    course.c_tbook = req.body.textBook;
    course.c_reference = req.body.referenceMaterial;
    course.c_goals = req.body.courseGoals;
    course.teacher = req.body.teacherId;
    course.c_pre = req.body.pre;
     course.m_lab = req.body.lab;
    course.m_mid = req.body.midTerm;
    course.m_final = req.body.finalTerm;
     course.m_total = req.body.totalMarks;

    //save course in dataBase and attach to particular teacher 
    await course.save();
    await teacher.courses.push(course._id);
    await teacher.save();
    res.send(course);

};

【讨论】:

    猜你喜欢
    • 2021-12-01
    • 2014-09-24
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2021-11-16
    • 2017-07-15
    相关资源
    最近更新 更多