Maison > Questions et réponses > le corps du texte
J'ai eu cette erreur lorsque j'essaie d'obtenir le document de mongodb J'utilise Mongo pour la première fois, ce serait génial si quelqu'un pouvait m'aider
const express = require("express"); const { ObjectId } = require("mongodb"); const { connectToDb, getDb } = require("./db"); const app = express(); //db connection let db; connectToDb((err) => { if (!err) { app.listen(3000, () => { console.log("App listerning on Port :3000"); }); db = getDb(); } }); //route connections app.get("/books", (req, res) => { let books = []; db.collection("books") .find() .sort({ author: 1 }) .forEach((book) => books.push(book)) .then(() => { res.status(200).json(books); }) .catch(() => { res.status(500).json({ error: "Couldn't fetch the documents" }); }); }); app.get("/books/:id", (req, res) => { db.collection("books") .findOne({ _id: ObjectId("req.params.id") }) .then((doc) => { res.status(200).json(doc); }) .catch((err) => { res.status(500).json({ error: "could not fetch the document" }); }); });
Vous voulez savoir comment vous débarrasser de cette erreur et quelles en sont les causes
P粉6920525132024-01-30 00:51:48
Essayez le code ci-dessous, cela a fonctionné pour moi, stockez simplement le nouveau ObjectId() dans la variable (id), puis accédez à la variable à l'intérieur de la méthode comme indiqué ci-dessous
const { ObjectId } = require("mongodb"); app.get("/books/:id", (req, res) => { const id = new ObjectId(req.params.id); if (ObjectId.isValid(id)) { db.collection("books") .findOne({ _id: id }) .then((doc) => { res.status(200).json(doc); }) .catch((err) => { res.status(500).json({ error: "Could not fetch the documents" }); }); } else { res.status(500).json({ error: "Not a valid doc id" }); } });