node.js - 如何将文件上传到 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/
解决方案
推荐阅读
- javascript - jquery-sortable上的空列表消息
- python - 搜索多个xml以找到具有特定属性值的xml并将它们复制到另一个文件夹
- javascript - 如何在我的 Angular Web 应用程序中导入或使用外部 JS 文件和函数
- javascript - 使用 json 填充选择器无法按预期工作
- for-loop - 由于我的 if 语句,我的 for 循环停止处理
- arrays - 记录数组的数组
- html - 在边缘 / Internet Explorer 中上传 html
- javascript - 有没有办法补偿 css event.elapsedTime 与 AudioContext 注释的播放方法中传递的时间之间的漂移?
- java - 有没有在 Spring JPA 中构建 MappedSuperclass Tree 类的更简洁的方法?
- wordpress - Wordpress - 我应该使用哪个钩子通过配置文件更新和密码重置来捕获 $_POST('password')