npm 包 @hapi/heavy 使用教程

在前端开发中,使用第三方库可以快速地完成许多任务。其中,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


猜你喜欢

  • npm 包 http-string-parser 使用教程

    在基于 Web 的应用程序中,HTTP 是非常重要的协议。解析 HTTP 请求和响应消息是前端中经常遇到的任务。通过使用 HTTP 字符串解析包,我们可以轻松地解析 HTTP 消息。

    5 年前
  • npm 包 ffmpeg-binaries 使用教程

    在前端开发中,视频和音频处理是非常常见的需求。而处理这些媒体数据,通常都需要使用到音视频编解码器,其中最常见和流行的是 ffmpeg 编解码器。而在前端中,通过使用 npm 包 ffmpeg-bina...

    5 年前
  • npm包 cleverbot-node 使用教程

    简介 NPM(Node Package Manager)是 Node.js 自带的包管理工具,提供了非常多的包用于各种场景。cleverbot-node 就是其中的一个包,它可以和人类进行聊天,和 C...

    5 年前
  • npm 包 bjson 使用教程

    什么是 bjson bjson 是一个 npm 包,它提供了一种新的二进制 JSON 格式。它可以将 JSON 数据转换为二进制格式,从而在传输和存储方面提供更好的性能和效率。

    5 年前
  • npm 包 @shadow-node/lowdb 使用教程

    简介 在前端开发中,数据的存储和管理是非常重要的一环。而 @shadow-node/lowdb 是一个简单的 JSON 数据库,使用 Node.js 文件存储数据,且支持链式查询和更新操作。

    5 年前
  • npm 包 @dimerapp/datastore 使用教程

    @dimmerapp/datastore 是一款针对 JavaScript 应用程序的数据存储解决方案。它提供了一组 API,可以方便地进行 CRUD 操作,并非常容易与其他包集成。

    5 年前
  • npm 包 @merryjs/mini 使用教程

    前言 @merryjs/mini 是一个轻量级的前端工具库,提供了一些实用的函数和工具,能够帮助我们更加便捷地开发应用,提高开发效率。本文将介绍如何安装和使用 @merryjs/mini。

    5 年前
  • npm 包 @mdfe/antd-mobile 使用教程

    简介 在前端开发中,我们经常需要使用 UI 库来构建用户界面。antd-mobile 是一个非常流行的 UI 库,它基于 React 和 Mobile 设计理念,提供了丰富的组件和功能。

    5 年前
  • npm 包 @johnnylc/rn-custom-ui-kit 使用教程

    简介 @johnnylc/rn-custom-ui-kit 是一款 React Native 自定义 UI 组件库。它包含一系列常用的 UI 组件,可以帮助开发者快速搭建移动应用程序的用户界面。

    5 年前
  • npm 包 @johnnylc/rn-custom-ui-components 使用教程

    简介 @johnnylc/rn-custom-ui-components 是一款基于 React Native 的自定义 UI 组件库。这个库包含了一些常用的控件,如:按钮、输入框等,并且都可以根据需...

    5 年前
  • npm 包 @huangming1994/antd-mobile 使用教程

    在前端开发中,使用成熟的 UI 组件库可以大大提高开发效率并增加项目稳定性。而 @huangming1994/antd-mobile 是一个优秀的 React 移动端 UI 组件库,提供了丰富的组件和...

    5 年前
  • npm 包 @gutenye/antd-mobile 使用教程

    简介 @gutenye/antd-mobile 是一款基于 React 和 Ant Design Mobile 的 UI 组件库,专为移动端应用程序开发而设计。它提供了一系列高质量、易用性强的组件,包...

    5 年前
  • npm 包 @react-native-community/cameraroll 使用教程

    随着智能手机摄影功能的不断提升,相册管理和图像处理已经成为了手机应用开发者不可忽视的部分。如果您正在开发 React Native 应用,那么 @react-native-community/came...

    5 年前
  • npm 包 @types/react-native 使用教程

    前言 前端技术日新月异,不断出现新的技术和框架。在移动端开发中,React Native 已经成为了一个非常流行的跨平台开发框架。然而,作为开发者,我们需要高效地开发应用程序并进行调试和测试。

    5 年前
  • npm 包 `react-native-swipeout` 使用教程

    介绍 react-native-swipeout 是一个 React Native 组件库,可用于实现左右滑动操作栏功能。这个库的使用非常简单,同时也拥有强大的功能。

    5 年前
  • npm 包 rc-gesture 使用教程

    rc-gesture 是一个基于 React 的手势事件库,能够识别 Web 上的各种手势事件,并提供多个手势事件的监听和处理方法。使用 rc-gesture 能够为用户提供更流畅,更自然的 Web ...

    5 年前
  • npm 包 @types/raf 使用教程

    随着前端技术的不断发展,我们越来越依赖于各种第三方库和插件来提升工作效率。其中,使用 requestAnimationFrame 相信大家已经非常熟悉了,它是一个网页动画效果的基本组件。

    5 年前
  • npm包@types/enzyme使用教程

    前言 在前端开发中,我们经常会使用到各种插件和库,其中很多都是通过npm包管理器进行管理的。而开发过程中我们也会遇到一些类型的问题,这时候就需要使用到类型定义文件(TypeScript)来解决。

    5 年前
  • npm 包 @types/classnames 使用教程

    在前端开发中,经常需要操作 DOM 元素的 className 属性。而因为这个属性的值一般是字符串类型,因此对于开发者来说,处理这个属性的时候会非常容易出错,尤其是在项目较大时。

    5 年前
  • npm 包 @byhealth/yyj-antd 使用教程

    简介 @byhealth/yyj-antd 是一款基于 Ant Design 的 React 组件库,主要用于医疗健康领域的前端开发。该组件库提供了丰富、易用的组件,可快速构建功能完善、高效稳定的医疗...

    5 年前

相关推荐

    暂无文章