在前端开发中,使用第三方库可以快速地完成许多任务。其中,npm 是最常用的包管理器之一。@hapi/heavy 就是一个在 npm 上发布的轻量化的文件上传工具,可以极大地简化前端开发中的文件上传任务。
安装
安装 @hapi/heavy 的命令非常简单,只需要在终端输入以下命令即可:
npm install @hapi/heavy
使用
@hapi/heavy 的使用非常简单,只要你熟悉如何使用 Node.js 和 Hapi,就可以轻松地使用它。下面是一个简单的示例:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ----- - ----------------------- ----- ------ - ------------- ----- ----- ----- ----------- --- ----- ---- - ----- -- -- - ----- ----------------- ------- ------ -------- - --------- ------- -- -------- - --- -------------- ------- ------- ----- ---------- ------- - -------- - ------- --------- ------ ----- ------ --------------------- - -- -------- ----- ----------------- -- - -- -- -------------------- ------ ------ ----------- ----------- - --- ----- --------------- ------------------- ------- ----- ----------------- -- -------展开代码
在以上示例中,我们使用 HTTP POST 请求上传文件。在 Hapi 中,我们使用 payload
参数来指定接收的数据类型。这个参数有许多选项,如 joi
、allows
等等参数,下面我们简单介绍一下其中的几个:
output
: 数据输出类型,默认是data
,可以修改为stream
或file
parse
: 是否将data
转换成 JSON 对象allow
: 允许接受的数据类型,比如multipart/form-data
用于上传文件,application/json
可以接受 JSON 格式的数据
通过上面代码示例,我们可以轻松地上传文件了。
高级配置
@hapi/heavy 还有一些高级配置选项,可以更加精准地控制文件的上传和存储行为。
多文件上传
@hapi/heavy 默认只接受一个文件,但实际上可以接受多个文件。如果有多个文件,只需要修改 allow
参数即可,如下所示:
-- -------------------- ---- ------- -------------- ------- ------- ----- ---------- ------- - -------- - ------- --------- ------ ----- ------ ----------------------- ------------------- - -- -------- ----- ----------------- -- - ----- ---- - ---------------- -- -- --------------------- ------ ------ ----------- ----------- - ---展开代码
自定义上传路径
默认情况下,@hapi/heavy 会将文件保存在操作系统临时文件路径中。如果需要将文件保存到自定义的路径中,可以通过设置如下代码进行设置:
-- -------------------- ---- ------- ----- ------- - - --------- -------- -------- ------------------------- -- ------- -- ----- ----------------- ------- ------ ------- ---展开代码
注意,需要确保自定义的上传路径可写权限。
配置文件类型白名单
防止恶意攻击和系统安全策略,通常需要过滤掉某些文件类型,只允许上传指定文件类型。在 @hapi/heavy 中,可以通过设置 whitelist
选项进行配置,只有在白名单中的文件类型才能通过上传。
-- -------------------- ---- ------- ----- ------- - - -------- -------------------------- ---------- - ------ ------- ------ ------ ------ ----- - -- --------- -- ----- ----------------- ------- ------ ------- ---展开代码
在白名单中可以使用通配符,如:whitelist: [ '*.jpg', '*.png' ]
。
总结
@hapi/heavy 是一个非常易用、灵活的文件上传工具,简化了前端开发中繁琐的文件上传过程。使用 @hapi/heavy 可以更加专注于业务逻辑开发,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/102876