无法保存到MongoDB数据库并使用把手

时间:2019-06-13 10:49:03

标签: node.js mongodb express crud express-handlebars

这是我发帖保存到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>

该表单实际上已加载,但是当我按Submit时,它不会保存到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 :(得分:0)

您在定义1. /api/v1/login/{emailId}?city={city}&t={t1} 2. /api/v1/checkBalance/{emailId}?city={city}&t={t2} 3. /api/1/processedData/{emailId}?city={city}&t={t3} 来处理表单提交时,表单使用方法GET