404从node.js&express将数据保存到mongoDb时出错

问题描述 投票:0回答:1

im当前正在尝试将Bootstrap输入字段中的某些数据保存到我的mongoDB数据库中,但是我总是收到错误insertMovie:1 POST http://localhost:3000/insertMovie 404 (Not Found)。我试图更改路线,但找不到错误。我的模式位于名为movie.js的文件中。

我觉得我真的没有得到Express的路线,在这方面我很新。

<div class="container">
      <div class="row">
        <div class="col">
          <form method="post" action="/insertMovie">
            <h1 class="text-center pt-5">Neuen Film anlegen</h1>
            <div class="form-group">
              <label>Titel</label>
              <input
                type="text"
                class="form-control"
                placeholder="Titel eingeben"
                name="title"
              />
            </div>
            <div class="form-group">
              <label>Beschreibung</label>
              <input
                type="text"
                class="form-control"
                placeholder="Beschreibung eingeben"
                name="description"
              />
            </div>
            <div class="form-group">
              <label>Startdatum</label>
              <input
                type="text"
                class="form-control"
                placeholder="Startdatum eingeben"
                name="start"
              />
            </div>
            <div class="form-group">
              <label>Aktuell laufend</label>
              <input
                type="text"
                class="form-control"
                placeholder="Beschreibung eingeben"
                name="currentlyRunning"
              />
            </div>

            <input id="submit" type="submit" class="btn btn-primary" />
          </form>
        </div>
      </div>
    </div>

movies.js

const express = require("express");
const router = express.Router();
const Movie = require("../models/movie");


router.get("/", async (req, res) => {
  try {
    const movies = await Movie.find();
    res.json(movies);
  } catch (err) {
    res.json({ message: err });
  }
});


router.post("/insertMovie", async (req, res) => {
  const movie = new Movie({
    title: req.body.title,
    description: req.body.description,
    start: req.body.start
  });

  try {
    const savedMovie = await movie.save();
    res.json(savedMovie);
  } catch (err) {
    res.json({ message: err });
  }
});


module.exports = router;

app.js

const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const mongoose = require("mongoose");
const cors = require("cors");
require("dotenv/config");

//Middlewares
app.use(bodyParser.json());
app.use(cors());

//Import Routes
const moviesRoute = require("./routes/movies");
app.use("/movies", moviesRoute);

//  include a static file serving middleware
app.use(express.static(__dirname + "/"));

// Get all Data
app.get("/data", function(req, res) {
  res.sendfile("index.html");
});

// Insert new Movie
app.get("/insertMovie", function(req, res) {
  res.sendfile(__dirname + "/insert.html");
});

mongoose.connect("mongodb://localhost:27017/testDB", { useNewUrlParser: true });
app.listen(3000);
javascript node.js mongodb express
1个回答
0
投票

这里的问题与您的电影路线有关。通过您的设置方式,端点实际上是:

localhost:3000/movies/insertMovie

但是您正在使用:

localhost:3000/insertMovie
© www.soinside.com 2019 - 2024. All rights reserved.