Я работаю над учебником, и я следовал всем инструкциям в учебнике. Все работает нормально, когда инструктор показал нам его видео, однако, я сталкиваюсь с проблемой, когда пытаюсь это сделать. Я дважды проверил мой код с инструктором, и все точно так же.
Я использую последнюю версию mon goose 5.9.3.
Я пытаюсь использовать Mon goose для запроса по ObjectId из MongoDB. Однако я получаю следующие ошибки:
- CastError: сбой приведения к ObjectId для значения "5e617a8af3f1e9383973f3e5" по пути "_id" для модели "Campground"
- Передаваемый аргумент должен быть одна строка из 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!");
});
Любая помощь будет оценена!