Я работал над проектом, в котором пользователь может писать журналы. Я использую 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);
Я также прикрепляю выходное изображение