У меня есть схема в mongoose, и я и рендеринга данных из схемы, чтобы выбрать значение. Но теперь я также хочу идентификатор выбранных данных - PullRequest
1 голос
/ 11 июня 2019

В основном у меня есть 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>

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

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