npm 包 @hapi/heavy 使用教程

阅读时长 5 分钟读完

在前端开发中,使用第三方库可以快速地完成许多任务。其中,npm 是最常用的包管理器之一。@hapi/heavy 就是一个在 npm 上发布的轻量化的文件上传工具,可以极大地简化前端开发中的文件上传任务。

安装

安装 @hapi/heavy 的命令非常简单,只需要在终端输入以下命令即可:

使用

@hapi/heavy 的使用非常简单,只要你熟悉如何使用 Node.js 和 Hapi,就可以轻松地使用它。下面是一个简单的示例:

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

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

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

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

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

-------
展开代码

在以上示例中,我们使用 HTTP POST 请求上传文件。在 Hapi 中,我们使用 payload 参数来指定接收的数据类型。这个参数有许多选项,如 joiallows 等等参数,下面我们简单介绍一下其中的几个:

  • output: 数据输出类型,默认是 data,可以修改为 streamfile

  • 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