Удалите .files и .chunk с помощью GridFSBucket - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь удалить данные .files и .chunk, но все найденные мной сообщения либо устарели, либо не относятся к моей проблеме.

Это мой внутренний маршрут:

const mongoose = require("mongoose");
const config = require("config");
const db = config.get("mongoURI");
let gfs;
const conn = mongoose.createConnection(db);
conn.once("open", () => {
  gfs = new mongoose.mongo.GridFSBucket(conn.db, {
    bucketName: "photos"
  });
});

router.delete('/:imageID', async (req, res) => {
    gfs.delete({_id: req.params.imageID, root:"photos"}, function(error){
      test.equal(error, null);
}

Есть идеи?

1 Ответ

0 голосов
/ 04 апреля 2020

Решено! чтобы успешно удалить GridFS .files и .chunks, просто найдите obj_id и выполните gfs.delete( obj_id) код:

router.delete("/:imageID", auth, async (req, res) => {
  try {
    const post = await Post.findOne({ image: req.params.imageID });
    console.log(post);
    if (post.user != req.user.id) {
      res.status(401).send("Invalid credentials");
    }

// Here:
    const obj_id = new mongoose.Types.ObjectId(req.params.imageID);
    gfs.delete( obj_id );

    await post.remove();
    res.json("successfully deleted image!");
  } catch (err) {
    console.error(err.message);
    res.status(500).send("Server Error");
  }
});
...