//error starts here!!!
CastError: Cast to ObjectId failed for value "comments" (type string) at path "_id" for model "Campground"
at model.Query.exec (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:4478:21)
at model.Query.Query.findOne (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:2309:8)
at Function.findOne (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\model.js:2204:13)
at Function.findById (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\model.js:2144:15)
at C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\app.js:82:16
at Layer.handle [as handle_request] (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\index.js:281:22
at param (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\index.js:354:14)
at param (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\index.js:365:14)
at Function.process_params (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\libr
outer\index.js:410:3)
at next (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\index.js:275:10)
at serveStatic (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\serve-static\index.js:75:16)
at Layer.handle [as handle_request] (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\layer.js:95:5) {
messageFormat: undefined,
stringValue: '"comments"',
kind: 'ObjectId',
value: 'comments',
path: '_id',
reason: Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
at new ObjectID (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\bson\lib\bson\objectid.js:59:11)
at castObjectId (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\cast\objectid.js:25:12)
at ObjectId.cast (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schema\objectid.js:245:12)
at ObjectId.SchemaType.applySetters (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schematype.js:1123:12)
at ObjectId.SchemaType._castForQuery (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schematype.js:1601:15)
at ObjectId.SchemaType.castForQuery (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schematype.js:1591:15)
at ObjectId.SchemaType.castForQueryWrapper (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schematype.js:1568:20)
at cast (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\cast.js:331:32)
at model.Query.Query.cast (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:4917:12)
at model.Query.Query._castConditions (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:1955:10)
at model.Query. (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:2212:8)
at model.Query._wrappedThunk [as _findOne] (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\helpers\query\wrapThunk.js:16:8)
at C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\kareem\index.js:370:33
at processTicksAndRejections (internal/process/task_queues.js:77:11),
valueType: 'string'
}
//campgrounds
var mongoose = require("mongoose");
var campgroundSchema = new mongoose.Schema({
name: String,
img: String,
description: String,
comments: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Comment"
}
]
});
module.exports = mongoose.model("Campground", campgroundSchema);
//comment
var mongoose = require("mongoose");
var commentSchema = new mongoose.Schema({
text: String,
author: String
});
module.exports = mongoose.model("Comment", commentSchema);
//seedding
var mongoose = require("mongoose");
var commentSchema = new mongoose.Schema({
text: String,
author: String
});
module.exports = mongoose.model("Comment", commentSchema);
//app routes
app.get("/campgrounds/:id/comments/new", function(req, res){
Campground.findById(req.params.id, function(err, campground){
if(err){
console.log(err);
} else {
res.render("comments/new", {camps: campground});
}
});
});
app.post("/campgrounds/:id/comments", function(req, res){
Campground.findById(req.params.id, function(err, campground){
if(err){
console.log(err);
res.redirect("/campgrounds");
} else {
console.log(req.body.comment);
}
});
});