Node js веб-сайт, вложенные модели, не может отображать содержимое в конкретной модели - PullRequest
0 голосов
/ 25 апреля 2020

Я работал над проектом, в котором пользователь может писать журналы. Я использую NodeJS, ExpressJS и mongodb. Я успешно все создал, но когда я пытаюсь вывести все журналы определенного пользователя, я могу вывести только идентификатор журнала. Я не могу показать текст журнала. Я прилагаю пользовательскую схему и схему журнала. Я также прилагаю журнальные маршруты и журнальный указатель.

модель пользователя

var mongoose              = require("mongoose");
var passportLocalMongoose = require("passport-local-mongoose");

var UserSchema = new mongoose.Schema({
    firstname: {type: String,required: true},
    lastname: String,
    username: {type: String, unique: true, required: true},
    email:  {type: String,unique:true, required: true},
    password: String,
    phonenumber: {type:String,unique: true},
    isVerified: { type: Boolean, default: false },
    resetPasswordToken: String,
    resetPasswordExpires: Date,
    verificationToken: String,
    verificationTokenExpires: Date,

    journals: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Journal"
    }],

    article:[
        {
            type:mongoose.Schema.Types.ObjectId,
            ref:"Article"
        }
    ]
});
UserSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("User",UserSchema);

журнал маршрутов

var express = require("express");
var router = express.Router({mergeParams:true});
var User = require("../models/User");
var Journal =  require("../models/journal");

//Index route to show all journals
router.get("/user/:id/journal",function(req,res){
    User.findById(req.params.id, function(err, user){
        if(err)
        {
            console.log(err);
        }
        else
        {
            res.render("journal/index",{user: user});
        }
    })
});

//New Journal
router.get("/user/:id/journal/new", function(req,res){
	User.findById(req.params.id, function(err, user){
        if(err)
        {
            console.log(err);
        }
        else
        {
            console.log(user);
            res.render("journal/new",{user: user});
        }
    })
});

//CREATE - add new journal to DB
router.post("/user/:id/journal", function(req, res){
    User.findById(req.params.id, function(err, userFound){
        if(err)
        {
            res.redirect("/user");
        }
        else
        {
            Journal.create(req.body.Journal,function(err, journal){
                if(err)
                {
                    console.log(err);
                }
                else
                {
                    journal.text = req.body.journalText;
                    journal.author.id = req.params.id;
                    journal.author.username = userFound.username;
                    journal.save();
                    console.log(journal);
                    userFound.journals.push(journal);
                    userFound.save();
                    res.redirect('/');

                }
            })
        }

    })
});

//EDIT journal
router.get("/user/:id/journal/:journal_id/edit", function(req, res){
    Journal.findById(req.params.journal_id, function(err, foundJournal){
       if(err){
           res.redirect("back");
       } else {
         res.render("journal/edit", {user_id: req.params.id, journal: foundJournal});
       }
    });
 });


 // UPDATE journal
router.put("/user/:id/journal/:journal_id", function(req, res){
    Journal.findByIdAndUpdate(req.params.journal_id, req.body.journal, function(err, updatedJournal){
       if(err){
           res.redirect("back");
       } else {
           res.redirect("/user/" + req.params.id );
       }
    });
 });


// Journal DESTROY ROUTE
router.delete("/user/:id/journal/:journal_id", function(req, res){
    //findByIdAndRemove
    Journal.findByIdAndRemove(req.params.journal_id, function(err){
       if(err){
           res.redirect("back");
       } else {
           res.redirect("/use/" + req.params.id);
       }
    });
});





module.exports = router;

модель журнала

var mongoose = require("mongoose");

var journalSchema = mongoose.Schema({
	text: String,
	author: {
		id: {
			type: mongoose.Schema.Types.ObjectId,
			ref: "User"
		},
		username: String
	}
});

module.exports = mongoose.model("Journal", journalSchema);

Я также прикрепляю выходное изображение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...