В основном у меня есть 2 раздела. Первый - это категория, а второй - эссе. Категории добавляются в схему mongoose, а затем категории отображаются для добавления эссе в определенный раздел категории. Теперь, когда я выбираю определенную категорию, я также хочу сохранить идентификатор этой категории в схеме эссе, но не могу этого сделать. Любая помощь приветствуется
Я пробовал mongoose populate и метод schema.types.object, но не
работает на меня.
// Загрузка эссе модели
require("../models/essay");
const essay = mongoose.model("essay");
// Загрузка категории модели
require("../models/category");
const category = mongoose.model("category");
// Форма обработки эссе
router.get("/addessay", ensureAuthenticated, (req, res) => {
res.header(
"Cache-Control",
"no-cache, private, no-store, must-revalidate,max-stale=0, post-check=0,
pre-check=0"
);
category.find({}).then(category => {
res.render("addessay", {
category: category
});
});
});
// Опубликовать маршрут для хранения эссе в db
router.post("/essay/add", ensureAuthenticated, (req, res) => {
res.header(
"Cache-Control",
"no-cache, private, no-store, must-revalidate,max-stale=0, post-check=0, pre-check=0"
);
const newEssay = {
cat: req.body.category,
catg: req.body.categoryg,
body: req.body.body,
bodygreece: req.body.bodyg
};
new essay(newEssay).save().then(essay => {
req.flash("success_msg", "Essay Succesfully added");
res.redirect("/");
});
});
// Схема категории
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
// создание схемы
const categorySchema = новая схема ({
категория: {
Тип: Строка,
обязательно: правда
},
Категория Греция: {
Тип: Строка,
обязательно: правда
},
Дата: {
тип: дата,
по умолчанию: Date.now
}
}); * * Тысяча двадцать-две
mongoose.model ("category", categorySchema);
// Схема эссе
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
// создание схемы
const EssaySchema = new Schema({
cat: {
type: String,
required: true
},
catg: {
type: String,
required: true
},
body: {
type: String,
required: true
},
bodygreece: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
});
mongoose.model("essay", EssaySchema);
// Шаблон Handlebar (форма добавления эссе)
<main class="page-content my-5">
<div class="row">
<div class="col-md-6 offset-3">
<h3 class="my-5">Add Your your Essays .!</h3>
</div>
</div>
<div class="row">
<div class="col">
<form action="/essay/add" method="POST">
<div class="form-group">
<select class="categorys form-control mt-4" name="category">
{{#each category}}
<option value="{{id}}">{{category}}
</option>
{{/each}}
</select>
</div>
<div class="form-group">
<select class="categorys form-control mt-4" name="categoryg">
{{#each category}}
<option value="{{id}}">{{categorygreece}}
</option>
{{/each}}
</select>
</div>
<div class="form-group">
<h5 class="mb-3">Tell us your Essay in English!</h5>
<script src="https://cdn.ckeditor.com/4.11.4/standard/ckeditor.js"></script>
<textarea name="body" id="body-text" cols="30" rows="5" class="form-control"
placeholder="English Essay"></textarea>
<script>
CKEDITOR.replace('body');
</script>
</div>
<div class="form-group">
<h5 class="mb-3">Tell us your Essay in Greece!</h5>
<script src="https://cdn.ckeditor.com/4.11.4/standard/ckeditor.js"></script>
<textarea name="bodyg" id="body-text-2" cols="30" rows="5" class="form-control"
placeholder="Greece Essay"></textarea>
<script>
CKEDITOR.replace('bodyg');
</script>
</div>
<div class="form-group">
<input type="submit" value="SUBMIT" class="form-control btn btn-outline-dark btn-sm">
</div>
</form>
</div>
</div>
</main>
Поэтому, когда из опций я выбираю категорию, я также хочу идентификатор категории и должен сохранить его в схеме эссе.