mongo 存文件 mongodb 保存附件

导读:
Mongodb是一种非关系型数据库 , 它的灵活性和可扩展性使得它成为了很多企业的首选 。在实际应用中 , 我们经常需要将文件上传到数据库中进行存储,本文将介绍如何使用Mongodb来保存附件 。
1. 创建一个GridFS bucket
在Mongodb中 , 我们可以使用GridFS来存储大文件 。首先,我们需要创建一个GridFS bucket:
```
const { MongoClient } = require('mongodb');
const client = await MongoClient.connect(uri);
const db = client.db(databaseName);
const bucket = new mongodb.GridFSBucket(db);
2. 将文件写入GridFS bucket
接下来,我们可以将文件写入GridFS bucket中:
const fs = require('fs');
const stream = fs.createReadStream('/path/to/file');
const uploadStream = bucket.openUploadStream('filename');
stream.pipe(uploadStream).on('error', reject).on('finish', resolve);
这里我们使用Node.js内置的fs模块来读取文件,然后将其写入GridFS bucket中 。
3. 从GridFS bucket中读取文件
最后,我们可以从GridFS bucket中读取文件:
const downloadStream = bucket.openDownloadStreamByName('filename');
downloadStream.pipe(res).on('error', () => res.sendStatus(404)).on('finish', () => res.end());
这里我们使用Node.js内置的http模块来响应客户端请求,并从GridFS bucket中读取文件并返回给客户端 。
总结:
【mongo 存文件 mongodb 保存附件】本文介绍了如何使用Mongodb来保存附件 。我们可以通过创建一个GridFS bucket来存储大文件,并使用Node.js内置的fs模块将文件写入GridFS bucket中 。最后,我们可以从GridFS bucket中读取文件并返回给客户端 。

    推荐阅读