npm 包 mongo-gridfs-storage 使用教程

阅读时长 4 分钟读完

介绍

mongo-gridfs-storage 是一个基于 Node.js 的 npm 包,用于将文件存储到 MongoDB 的 GridFS 中。使用该包可以方便地实现文件上传和下载功能,并且支持大文件存储。

安装

使用 npm 进行安装:

使用

连接数据库

在使用 mongo-gridfs-storage 之前,需要先连接到 MongoDB 数据库。可以使用 mongoose 进行连接:

创建 GridFS 存储实例

使用 mongo-gridfs-storage 创建 GridFS 存储实例,示例如下:

-- -------------------- ---- -------
----- ------------- - -------------------------------
----- ------- - --- ---------------
  ---- ---------
  ----- ----- ----- -- -
    ------ -
      --------- -----------------
    -
  -
--

在上述代码中,url 参数指定了 MongoDB 数据库的连接地址,file 参数指定了文件存储时的默认属性,可以在实际使用中根据需求进行修改。

上传文件

使用 GridFS 存储实例的 .createWriteStream 方法可以实现文件上传功能。示例如下:

-- -------------------- ---- -------
----- ------- - ------------------
----- ------ - ----------------

---------------------- ----- ---- -- -
  ----- ------ - ---------------------------
    --------- ---------------------
  --
  ----- ---------- - ----------------------------------
  -----------------------
  ------------------- ------ -- -
    -- --------
    ---------------------- ------- -------- --
  --
--

在上述代码中,req.file 是通过 multer 中间件上传的文件对象。使用 fs 模块创建读取流并将其传入 createWriteStream 方法中,最终返回的 upload 对象可以监听 finish 事件,以得到上传后的文件对象。

下载文件

使用 GridFS 存储实例的 .createReadStream 方法可以实现文件下载功能。示例如下:

-- -------------------- ---- -------
----- ------- - ------------------
----- ------ - ----------------

--------------------------- ----- ---- -- -
  ----- -------- - --------------------------
    ---- --------------------------------------
  --
  ------------------
--

在上述代码中,req.params.id 是要下载的文件的 ID,通过传入查询条件,使用 createReadStream 方法获取读取流,再将其通过管道传输到响应对象中,以实现文件下载功能。

总结

通过本文的介绍,我们学习了如何使用 mongo-gridfs-storage 包实现基于 MongoDB 的文件上传和下载。在实际应用中,我们可以通过对参数进行修改,灵活运用该包的功能,实现更加复杂的文件存储需求。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/158683