npm 包 express-image-middleware 使用教程

阅读时长 6 分钟读完

在前端开发中,处理图片是非常常见的需求。而 express-image-middleware 即是一款方便处理图片的中间件。今天,我们就来学习一下如何使用它!

安装

通过 npm 可以很方便地安装 express-image-middleware:

引入和使用

首先,在 Express 项目中引入 express-image-middleware:

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

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

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

接下来,让我们看一下中间件的选项。

中间件选项

express-image-middleware 提供一些选项,可以在配置中间件时进行设置:

cache

cache 是一个布尔值类型的选项,用于开启或关闭缓存。默认情况下,该选项为 false,即不开启缓存。

cacheMaxAge

cacheMaxAge 是一个数字类型的选项,单位是毫秒,用于设置缓存过期时间。当 cache 选项为 true 时,该选项才有效。

sizer

sizer 是一个函数类型的选项,用于设置图像缩放。该函数接收两个参数:widthheight,并返回一个对象,其中包含 widthheight 属性,例如:

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

这个例子中,当图片的宽度大于 800 时,我们将其缩放至 800,高度会按比例自动调整。

converter

converter 是一个函数类型的选项,用于设置图像类型转换。该函数接收两个参数:buffermimeType,并返回一个 Buffer 对象,例如:

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

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

这个例子中,当图片的类型为 PNG 时,我们将其转换为 JPEG 格式。

resizer

resizer 是一个函数类型的选项,用于设置图片尺寸调整。该函数接收两个参数:bufferresize,并返回一个 Buffer 对象,例如:

这个例子中,我们使用 Sharp 库(需要单独安装)来实现图像尺寸调整。

示例

最后,我们来看一下使用 express-image-middleware 处理图片的一个完整示例:

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

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

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

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

在这个示例中,我们开启了缓存,并设置了缓存过期时间为 1 天。同时,使用两个函数分别设置了图片的缩放和类型转换。最后,在 Express 中的路由中,我们返回了一张图片。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055b3081e8991b448d8d07

纠错
反馈