две отдельные схемы в моем приложении nodejs - PullRequest
1 голос
/ 01 апреля 2020

довольно плохо знаком с javascript, и я пытаюсь сохранить данные из формы ввода в моем веб-приложении в моем кластере mongodb. Я уже сделал форму входа и регистрации в моем приложении, которое успешно сохраняется в моем mongodb кластере, и моя схема для этого выглядит следующим образом: (PS я добавил в projecttitle: {type: mongoose.Schema.Types.ObjectId,ref: "Project"} в этой схеме, чтобы попытаться связать с другим схема, не знаю, если это правильно?)

const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({
    username: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    emailaddress: {
        type: String,
        required: true
    },
    projecttitle: {
        type: mongoose.Schema.Types.ObjectId,
        ref: "Project"
    }
});


const User = mongoose.model('User', UserSchema,);

module.exports = User;

Однако, как только пользователь вошел в систему, они встречаются с другой формой ввода с другими входами. Я хочу сохранить эти входные данные в моих коллекциях атласа mongoDB и связать входные данные из формы с пользователем, который их ввел. Я хотел бы сохранить данные, чтобы, когда пользователь снова входит в свою учетную запись, я мог в конечном итоге отобразить данные, которые они вводили в этой форме на домашней странице ранее. Я использовал эту схему: (ps я добавил postedBy: {type: mongoose.Schema.Types.ObjectId, ref: 'User'}, чтобы попытаться связать эту схему с UserSchema, опять же, я не знаю, верно ли это)

const mongoose = require('mongoose');

const ProjectSchema = new mongoose.Schema({
    postedBy: {
        type: mongoose.Schema.Types.ObjectId, ref: 'User'},
    projecttitle: {
        type: String,required: true},
    projectmodule: {
        type: String,required: true},
    dateone: {
        type: Date,required: true},
    datetwo: {
        type: Date,required: true},
    milestones: {
        type: String,required: true}
});


const Project = mongoose.model('Project', ProjectSchema,);

module.exports = Project;

, и это фрагмент моего app. js файл, чтобы попытаться сохранить ProjectSchema, в мои коллекции в моей базе данных.

//homepage
router.get('/homepage', forwardAuthenticated, (req, res) => res.render('homepage'));

    router.post('/homepage', (req, res) => {
      const { projecttitle, projectdescription, dateone, datetwo, } = req.body;

      let errors = [];

      if (!projecttitle ||  !projectdescription|| !dateone || !datetwo ) {
        errors.push({ msg: 'Missing entries. Please fill in every field' });
      }

      if (errors.length > 0) {
        res.render('homepage', {
          errors,
          projecttitle,
          projectdescription,
          dateone,
          datetwo  
        });
      } else {

                const newProject = new Project({
                  projecttitle,
                  projectdescription,
                  dateone,
                  datetwo
                });
                newProject.save()
                .then(user => {
                  req.flash(
                    'good',
                    'You have now made a project and its saved in our system'
                  );
                  res.redirect('/users/homepage');
                })
              }})

извинения, если это не имеет смысла, любая помощь будет высоко ценится. если вам нужна дополнительная информация о моем коде, пожалуйста, дайте мне знать.

...