使用 Fastify 实现文件上传和下载服务

本文将介绍如何使用 Fastify 框架实现一个文件上传和下载的服务,并提供相应的示例代码。Fastify 是一个快速和低开销的 Web 框架,是 Node.js 生态中最好的选择之一。

安装 Fastify

首先需要安装和配置 Fastify 框架。可以使用 npm 安装 Fastify:

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

在 app.js 中引入 Fastify 并创建实例。

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

文件上传

现在开始编写上传文件的 API。在 Fastify 中,使用 register 方法添加插件。我们使用 fastify-multipart 这个插件处理文件上传。

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

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

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

上面的代码使用了 pump 包来将上传的文件流写入磁盘。文件将保存在 uploads 目录中。

文件下载

现在我们需要实现稍微复杂一些的 API,用于从服务器下载指定的文件。首先在路由中添加 /download/:fileName API,其中 :fileName 指定需要下载的文件名。

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

代码中,我们从指定的路径创建一个读取流,然后通过 Fastify 中的 reply.type 方法设置下载文件的 MIME 类型。最后,将读取流作为响应发送到客户端。

测试

完成代码编写后,我们需要进行测试以确保 API 能够正确工作。推荐使用 Postman 工具进行接口测试。

首先向服务器上传测试文件(例如 test.txt),然后使用下载 API 下载该文件。如果文件下载到了本地,那么服务就已经成功实现。

结论

这篇文章向你介绍了如何使用 Fastify 实现文件上传和下载服务。尽管 Fastify 是一个精简的框架,但它可以很好地满足 Web 应用程序的需要。虽然本文的代码是示例性的,但它可以很好地扩展到实际应用中。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/671aff729babaf620fa6ded0