Форма руля не запускается MongoDB удалить функцию - typeError gfs.deleteOne - PullRequest
0 голосов
/ 03 июня 2019

ребята, мне нужна помощь: (

Форма ниже отправляет изображения / файлы в Mongodb, используя движок handlelebars (.hbs) и хранилище multer-gridfs (Mongodb FIles), ** но нажав кнопку удалить егогенерирует следующую ошибку: **

TypeError: gfs.deleteOne не является функцией

Также ** она не загружает миниатюру прикрепленной фотографии **

PS: Я думаю, что ошибка в форме HBS.

спасибо!

Полный код: https://github.com/rebek/upFileHBS

<form action="/upload" method="POST" enctype="multipart/form-data">
        <div class="custom-file mb-3">
          <input type="file" name="file" id="file" class="custom-file-input">
          <label for="file" class="custom-file-label">Choose File</label>
        </div>
        <input type="submit" value="Submit" class="btn btn-primary btn-block">
      </form>
      <hr>

      {{#each files}}
          <div class="card card-body mb-3">
            {{#if file.isImage}}
                <img src="image/{{this.filename}}" alt="">

                {{else}}
                    {{this.filename}}
                <form method="POST" action="/files/{{this._id}}?_method=DELETE">
                  <button class="btn btn-danger btn-block mt-4">Delete</button>
                </form>
              </div>
          {{/if}}
      {{/each}}

    </div>
  </div>
</div>
app.get('/', (req, res) => {
  gfs.files.find().toArray((err, files) => {
    // Check if files
    if (!files || files.length === 0) {
      res.render('index', { files: false });
    } else {
      files.map(file => {
        if (
          file.contentType === 'image/jpeg' ||
          file.contentType === 'image/png'
        ) {
          file.isImage = true;
        } else {
          file.isImage = false;
        }
      });
      res.render('index', { files: files });
    }
  });
});
...
app.delete('/files/:id', (req, res) => {
  gfs.deleteOne({ _id: req.params.id, root: 'uploads' }, (err, GridFSBucket) => {
    if (err) {
      return res.status(404).json({ err: err });
    }

    res.redirect('/');
  });
});

...