This is the code to fetch data from mongodb and then send it to ejs template to render.
the data object is fetched correctly, I checked by console.log the data object,and there are no validators set on the model.
Screenshot of data for the given ID in mongoDBcompass
app.get('/campgrounds/:id',async (req, res) => {
const { id } = req.params;
const data = await Campground.findById(id);
res.render("./campgrounds/campInfo", { data });
});
//ejs template
<div class="row mb-3">
<div class="col-6">
<img src="<%= data.image %>" class="img w-100" alt="">
</div>
<div class="col-6">
<p><%= data.description %></p>
</div>
</div>
it throws the following error:
CastError: Cast to ObjectId failed for value “asddfadsf” (type string) at path “_id” for model “Campground”
at SchemaObjectId.cast (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibschemaobjectId.js:250:11)
at SchemaType.applySetters (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibschemaType.js:1236:12)
at SchemaType.castForQuery (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibschemaType.js:1653:17)
at cast (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibcast.js:375:32)
at Query.cast (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibquery.js:4798:12)
at Query._castConditions (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibquery.js:2206:10)
at model.Query._findOne (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibquery.js:2526:8)
at model.Query.exec (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibquery.js:4342:80)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async file:///C:/Users/rajne/Desktop/CampGrounds/index.js:57:18 {
stringValue: ‘”asddfadsf”‘,
messageFormat: undefined,
kind: ‘ObjectId’,
value: ‘asddfadsf’,
path: ‘_id’,
reason: BSONError: input must be a 24 character hex string, 12 byte Uint8Array, or an integer
at new ObjectId (C:UsersrajneDesktopCampGroundsnode_modulesbsonlibbson.cjs:2362:23)
at castObjectId (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibcastobjectid.js:25:12)
at SchemaObjectId.cast (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibschemaobjectId.js:248:12)
at SchemaType.applySetters (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibschemaType.js:1236:12)
at SchemaType.castForQuery (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibschemaType.js:1653:17)
at cast (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibcast.js:375:32)
at Query.cast (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibquery.js:4798:12)
at Query._castConditions (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibquery.js:2206:10)
at model.Query._findOne (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibquery.js:2526:8)
at model.Query.exec (C:UsersrajneDesktopCampGroundsnode_modulesmongooselibquery.js:4342:80),
valueType: ‘string’
}
Node.js v22.3.0
i tried almost everything i could.
Rajneesh Bansal is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.