繁体   English   中英

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

[英]MongoDB insertOne() buffering timed out after 10000ms

我正在尝试使用“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;

我觉得这很难理解大声笑

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

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 });
  }
})

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

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

文档链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM