本文将介绍如何使用 Fastify 框架实现一个文件上传和下载的服务,并提供相应的示例代码。Fastify 是一个快速和低开销的 Web 框架,是 Node.js 生态中最好的选择之一。
安装 Fastify
首先需要安装和配置 Fastify 框架。可以使用 npm 安装 Fastify:
npm install fastify
在 app.js 中引入 Fastify 并创建实例。
const fastify = require('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