MongoDB insertOne() 缓冲在 10000 毫秒后超时

时间:2021-06-09 12:07:37

标签: javascript node.js mongodb express mongoose

我正在尝试使用“POST”通过使用 MongoDB 创建新的电影数据。但是当我使用“邮递员”发布我的数据时,它一直这样说

{"message":"操作 movies.insertOne() 缓冲在 10000 毫秒后超时"}

我将发布三个 javascript 文件,请让我知道我的问题。

第一:索引 第二:电影(模块) 第三:路线

const router = express.Router();
const Movie = require('./models/movie');
//Fetch all movies
router.get("/movies", async (req, res) => {
  try {
    const movies = await Movie.find();
    res.send(movies) 
  } catch(err) {
    return res.status(500).json({message: err.message});
  }
})
// Add movie
router.post("/movies", async (req, res) => {
  const movie = new Movie({
    title: req.body.title,
    director: req.body.director,
    year: req.body.year
  });

  try {
    const newMovie = await movie.save();
    res.status(201).json({ newMovie });
  } catch(err) {
    return res.status(500).json({ message: err.message });
  }
})
module.exports = router;
//from here is Movie.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var MovieSchema = new Schema(
  {
    title: {type: String, required: true, maxlength: 150},
    director: {type: String, required: true, maxlength: 200},
    year: {type: Number, required: true}
  }
);
//Export model
module.exports = mongoose.model('Movie', MovieSchema);
// from here is routes.js
const express = require('express');
const router = express.Router();
const Movie = require('./models/movie');
//Fetch all movies
router.get("/movies", async (req, res) => {
  try {
    const movies = await Movie.find();
    res.send(movies) 
  } catch(err) {
    return res.status(500).json({message: err.message});
  }
})
// Add movie
router.post("/movies", async (req, res) => {
  const movie = new Movie({
    title: req.body.title,
    director: req.body.director,
    year: req.body.year
  });
  try {
    const newMovie = await movie.save();
    res.status(201).json({ newMovie });
  } catch(err) {
    return res.status(500).json({ message: err.message });
  }
})
enter code here

module.exports = router;

我觉得这很难理解lol

2 个答案:

答案 0 :(得分:0)

尝试像这样重构你的代码:

router.post("/movies", async (req, res) => {
  try {
    let newMovie  = await Movie.create(req.body);
    res.status(201).json(newMovie);
  } catch(err) {
    return res.status(500).json({ message: err.message });
  }
})

答案 1 :(得分:0)

在提供的代码中,我没有看到您正在使用 mongoose.connect 连接到数据库,例如:

mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true, useUnifiedTopology: true});

Link for the docs.

相关问题