Проблема при запросе mongoDB через mongoose - PullRequest
1 голос
/ 06 марта 2020

Я работаю над учебником, и я следовал всем инструкциям в учебнике. Все работает нормально, когда инструктор показал нам его видео, однако, я сталкиваюсь с проблемой, когда пытаюсь это сделать. Я дважды проверил мой код с инструктором, и все точно так же.

Я использую последнюю версию mon goose 5.9.3.

Я пытаюсь использовать Mon goose для запроса по ObjectId из MongoDB. Однако я получаю следующие ошибки:

  1. CastError: сбой приведения к ObjectId для значения "5e617a8af3f1e9383973f3e5" по пути "_id" для модели "Campground"
  2. Передаваемый аргумент должен быть одна строка из 12 байтов или строка из 24 шестнадцатеричных символов

Вот мой код:

var   express       = require("express"),
  app           = express (),
  bodyParser    = require("body-parser"),
  mongoose      = require("mongoose");

mongoose.connect("mongodb://localhost:27017/yelp_camp", {useNewUrlParser:true, useUnifiedTopology:true});

app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({extended:true}));

//SCHEMA SETUP
var campgroundSchema = new mongoose.Schema({
    name: String,
    image: String,
    description: String
});


var Campground = mongoose.model("Campground", campgroundSchema);

app.get("/", function(req, res){
    res.render("landing");
});

app.get("/campgrounds", function (req, res){
    //get all campgrounds from db
    Campground.find({}, function(err, allCampgrounds){
        if(err){
            console.log(err);
        } else{
            res.render("index", {campgrounds:allCampgrounds});
        }
    });
});

app.post("/campgrounds", function(req, res){
    var name = req.body.name;
    var image = req.body.image;
    var newCampground = {name: name, image: image};
    // Create a new campground and save to DB
    Campground.create(newCampground, function(err, newlyCreated){ 
        if(err){
            console.log(err);
        } else {
            res.redirect("/campgrounds");
        };
    });
});

app.get("/campgrounds/new", function(req, res){
    res.render("new.ejs");
});

app.get("/campgrounds/:id", function(req, res){
    //find the campground with provided ID
    Campground.findById(req.params.id, function(err, foundCampground){
        if(err){
            console.log(err);
        } else {
            res.render("show", {campground: foundCampground});
        }
    });
});

app.listen(process.env.PORT, process.env.IP, function(){
    console.log("The YelpCamp Sever Has Started!");
});

Любая помощь будет оценена!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...