TypeError: Tidak boleh memanggil ObjectId pembina kelas tanpa 'baru'
P粉399090746
P粉399090746 2024-01-29 08:42:04
0
1
310

Saya mendapat ralat ini apabila saya cuba mendapatkan dokumen daripada mongodb Saya menggunakan mongo buat kali pertama, alangkah baiknya jika sesiapa boleh membantu saya

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" });
    });
});

Nak tahu cara hilangkan ralat ini dan puncanya

P粉399090746
P粉399090746

membalas semua(1)
P粉692052513

Cuba kod di bawah, ia berfungsi untuk saya, cuma simpan ObjectId() baharu dalam pembolehubah (id) dan kemudian akses pembolehubah di dalam kaedah seperti yang ditunjukkan di bawah

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" });
  }
});
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!