NPM包Multer的使用教程

阅读时长 4 分钟读完

Multer是一个Node.js中间件,用于处理“multipart/form-data”类型的数据,主要用于文件上传。在前端开发中,文件上传是非常常见的需求,因此掌握Multer的使用技巧对于前端工程师来说非常重要。

安装Multer

我们可以使用npm来安装Multer,运行以下命令:

Multer的基本使用

为了使用Multer,我们需要首先引入它:

然后,我们需要配置一个存储引擎和路径。这里我们以磁盘存储为例,将上传的文件保存到名为uploads的文件夹中:

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

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

在上面的代码中,我们定义了一个存储引擎storage,并将其传递给multer构造函数。存储引擎指定了文件的存储位置和文件名的生成方式。这里我们将文件存储到uploads/目录下,并使用字段名和当前时间戳来生成文件名。

接下来,我们就可以通过调用upload中间件来处理文件上传了:

在上面的代码中,我们定义了一个POST请求处理函数,使用了upload.single中间件。该中间件指定只上传一个名为avatar的文件,并将其存储到磁盘上。

当服务器接收到一个符合要求的POST请求时,Multer会自动将上传的文件保存到指定路径中,并将文件信息添加到req.file对象中。我们可以通过访问req.file来获取上传的文件信息。

高级用法

Multer还提供了一些高级用法,如同时上传多个文件、限制文件类型和大小等。

以下是一个示例代码,展示了如何使用Multer同时上传多个文件,并限制文件大小和类型:

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

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

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

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

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

在上面的代码中,我们定义了一个存储引擎storage、一个文件过滤器fileFilter和一个文件大小限制limits。然后,我们将这些配置传递给multer构造函数,创建一个upload中间件。

在POST请求处理函数中,我们使用upload.array中间件来同时上传多个名为photos的文件,并限制最多上传5个文件。当上传的文件不符合文件类型或文件大小限制时,Multer会自动抛出错误并返回给客户端。

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

纠错
反馈