首页 > 解决方案 > 如何将文件上传到 mongodb GridFs?

问题描述

我正在使用 mongodb 4.2.8 版,我正在尝试将在服务器上创建的 pdf 保存到 mongofiles 中,而没有实现任何其他第三方包(mongoose、multer 等)。我的代码的问题是我不知道如何要求这些Grid功能。以下只是我正在处理的代码示例。

  const mongo = require('mongodb').MongoClient;
  const Grid = require('mongodb').GridFSBucket; // cant figure out how it works.
  // const Grid = require('mongodb').Grid; // not a function
  mongo.connect(url, {
    useNewUrlParser: true,
    useUnifiedTopology: true
  }, async (err, client) => {
  if (err) {
    console.error(err);
    return;
  }
  var db = client.db('brickfy')
  var grid = new Grid(client, 'fs');
  var writestream = grid.createWriteStream({
    metadata:{category:'example' user:'user'},
    content_type:'application/pdf',
    filename: '/path/my-pdf'
  });
  writestream.on('close', function (file) {
    console.log(file);
  }

});

我试图用这个例子来学习:https ://mongodb.github.io/node-mongodb-native/api-generated/grid.html但不是使用新的缓冲区上传图像。我在互联网上找到的其他示例是使用 mongoose 和 grid-fs-stream。这是使用我不想安装的所有工具的一个示例https://data-flair.training/blogs/mongodb-gridfs-tutorial/

标签: node.jsmongodb

解决方案


推荐阅读