Express.js 中使用 Multer 实现文件上传的完整教程

在 Web 开发中,文件上传是一个非常常见的需求,例如用户上传头像、上传图片等等。在 Express.js 中,Multer 是一个非常好用的中间件,可以帮助我们实现文件上传功能。本文将介绍如何使用 Multer 实现文件上传功能。

Multer 简介

Multer 是一个 Node.js 的中间件,用于处理 HTTP 请求中的文件数据。Multer 可以处理 enctype="multipart/form-data" 的表单数据,支持多文件上传,支持文件大小限制等功能。

安装 Multer

在使用 Multer 之前,需要先安装它。可以使用 npm 命令进行安装:

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

文件上传示例

下面我们通过一个简单的示例来演示如何使用 Multer 实现文件上传功能。

1. 创建 Express 应用程序

首先,我们需要创建一个 Express 应用程序。在命令行中输入以下命令:

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

这将创建一个名为 myapp 的 Express 应用程序。

2. 配置 Multer 中间件

在创建 Express 应用程序后,我们需要配置 Multer 中间件。在 app.js 文件中添加以下代码:

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

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

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

上述代码中,我们使用 multer.diskStorage 方法创建一个存储引擎,指定文件存储的目录和文件名。然后使用 multer 方法创建一个 Multer 中间件,将存储引擎作为参数传入。

3. 添加文件上传路由

在配置 Multer 中间件后,我们需要添加一个文件上传路由。在 routes 目录下创建一个名为 upload.js 的文件,添加以下代码:

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

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

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

上述代码中,我们定义了一个 POST 请求路由,使用 upload.single 方法指定上传的文件字段名为 file,当有文件上传时,会调用 function 中的回调函数。在回调函数中,我们可以处理上传的文件,例如将文件保存到数据库或磁盘中。

4. 添加文件上传页面

最后,我们需要添加一个文件上传页面,让用户可以上传文件。在 views 目录下创建一个名为 upload.ejs 的文件,添加以下代码:

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

上述代码中,我们创建了一个表单,使用 enctype="multipart/form-data" 指定表单数据为文件数据。在表单中添加一个文件上传控件,指定文件字段名为 file

5. 启动应用程序

完成以上步骤后,我们可以启动应用程序,访问 /upload 路由,上传一个文件。上传成功后,会返回一个 JSON 格式的响应,表示上传成功。

总结

本文介绍了如何使用 Multer 实现文件上传功能。Multer 是一个非常好用的中间件,可以帮助我们处理 HTTP 请求中的文件数据,支持多文件上传、文件大小限制等功能。在使用 Multer 时,需要配置存储引擎和上传路由,最后添加一个文件上传页面,就可以实现文件上传功能了。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65f844edd10417a2223c1b2b