Не могу сохранить в базе данных MongoDB и с помощью руля - PullRequest
0 голосов
/ 13 июня 2019

это мой почтовый запрос на сохранение в базу данных mongdb

router.post("/create", async (req, res) => {
  const createJottings = new Jottings({
    title: req.body.title,
    jottings: req.body.jottings
  });
  try {
    await createJottings.save();
    res.json(createJottings);
  } catch (err) {
    res.json({ message: err });
  }
});

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

<div class="card card-body">
  <h3>
    Edit Jottings/Idea
  </h3>
  <form action="/jottings/create" method="get">
    <div class="form-group">
      <label for="title">
        Title
      </label>
      <input type="text" name="title" class="form-control" required />
    </div>
    <div class="form-group">
      <label for="title">
        Jottings
      </label>
      <textarea name="Description" class="form-control" required></textarea>
    </div>
    <button type="submit" class="btn btn-primary">
      Submit
    </button>
  </form>
</div>

форма действительно загружается, но когда я нажимаю "отправить", она не сохраняется на сервере mongodb

{{#each getJottings}}
  <div class="card card-body mb-2">
    <h4>
      {{title}}
    </h4>
    <p>
      {{jottings}}
    </p>
    <a href="/jottings/edit/{{id}}" class="btn btn-dark btn-block">
      Edit
    </a>
  </div>
{{else}}
  <p>
    No Ideas and Jottings listed
  </p>
{{/each}}

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

обзор моего наброска маршрута

// Require Mongoose
const router = require("express").Router();

// Setup Models for Jotting
const Jottings = require("../models/jottings.model");

// Setting Endpoints For Routes

// Get All Jottings
router.get("/", async (req, res) => {
  try {
    const getJottings = await Jottings.find({}).sort({ date: "desc" });
    res.render("jottings/index", {
      getJottings: getJottings
    });
  } catch (err) {
    res.json({ message: err });
  }
});

// Getting routes to set form
router.get("/add", (req, res) => {
  res.render("jottings/add");
});

// Get Specific Jottings
router.get("/:id", async (req, res) => {
  try {
    // Requesting for request paremeter given to ever document created in mongoDB
    const id = req.params.id;

    await Jottings.findById(id, (err, jottings) => {
      if (!id) {
        res.json({ message: err });
      } else {
        res.json(jottings);
      }
    });
  } catch (err) {
    res.json({ message: err });
  }
});

// Post to create New Jottings for form
router.post("/create", async (req, res) => {
  const createJottings = new Jottings({
    title: req.body.title,
    jottings: req.body.jottings
  });
  try {
    await createJottings.save();
    res.json(createJottings);
  } catch (err) {
    res.json({ message: err });
  }
});

router.get("/edit/:id", async (req, res) => {
  try {
    // Requesting for request paremeter given to ever document created in mongoDB
    const id = req.params.id;
    const editJottings = await Jottings.findOne({ _id: id });
    res.render("jottings/edit", {
      editJottings: editJottings
    });
  } catch (err) {
    res.json({ message: err });
  }
});

// Patch to Edit Jottings for form
router.patch("/edit/:id", async (req, res) => {
  try {
    // Requesting for request paremeter given to ever document created in mongoDB
    const id = req.params.id;
    const editJottings = await Jottings.updateOne(
      { _id: id },
      { $set: { jottings: req.body.jottings } }
    );
    res.render("jottings/edit", {
      editJottings: editJottings
    });
  } catch (err) {
    res.json({ message: err });
  }
});

// Delete to delete Jottings for form
router.delete("/delete/:id", async (req, res) => {
  try {
    // Requesting for request paremeter given to ever document created in mongoDB
    const id = req.params.id;
    const deleteJottings = await Jottings.deleteOne({ _id: id });
    res.json(deleteJottings);
  } catch (err) {
    res.json({ message: err });
  }
});

// Exporting router
module.exports = router;

Я хотел бы, чтобы данные были сохранены в базе данных, когда я нажму кнопку отправки, а также перенаправят меня в список моих сохраненных данных.

1 Ответ

0 голосов
/ 13 июня 2019

Ваша форма использует метод GET, а вы определили router.post для обработки отправки формы.

...