首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不运行Mongodb删除函数- typeError gfs.deleteOne

不运行Mongodb删除函数- typeError gfs.deleteOne
EN

Stack Overflow用户
提问于 2019-06-03 20:40:45
回答 1查看 130关注 0票数 0

下面的表单使用handlelebar (.hbs)引擎和multer存储(Mongodb FIles)向Mongodb发送图像/文件,但是单击delete会生成以下错误:

TypeError: gfs.deleteOne不是一个函数

另外,它不加载附图的缩略图

Ps:我认为错误是以HBS形式出现的。

完整代码:https://github.com/rebek/upFileHBS

代码语言:javascript
复制
<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>
代码语言:javascript
复制
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('/');
  });
});
EN

回答 1

Stack Overflow用户

发布于 2021-04-23 19:35:58

代码语言:javascript
复制
  gfs.files.deleteOne({ filename: req.params.filename}, (err) => {
            if (err) return res.status(500).json({ success: false })
            return res.json({ success: true });
        })

使用上面的内容将删除文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56434287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档