📜  如何使用 multer 公开文件 (1)

📅  最后修改于: 2023-12-03 15:08:22.906000             🧑  作者: Mango

如何使用 Multer 公开文件

Multer 是一款 Node.js 的中间件,用于处理 HTTP POST 请求的文件类型数据。它非常适用于上传文件,它可以很容易地与 Express 或者 Koa 框架一起使用。

在本篇文章中,我们将介绍如何使用 Multer 来处理文件上传并将其公开于 Web 上。

安装 Multer

首先,我们需要安装 Multer。在安装之前,我们需要先安装 Node.js 和 npm。在命令行中,输入以下命令安装 Multer:

npm install --save multer
使用 Multer

使用 Multer 非常简单。首先,我们需要引入 Multer:

const multer = require('multer');

接下来,我们需要配置 Multer。Multer 可以为文件上传提供一些配置项,以确保文件上传是可控的和安全的。在下面的示例中,我们配置 Multer 将上传的文件保存到 uploads 文件夹中:

const upload = multer({ dest: 'uploads/' });

我们定义一个文件上传的路由,并使用 upload.single 函数来处理单个文件上传。upload.single 函数将从 HTTP 请求中提取单个文件,保存到 uploads 文件夹中,并给上传的文件自动生成一个唯一的文件名:

app.post('/upload', upload.single('avatar'), function (req, res, next) {
  // req.file 是 `avatar` 文件的信息
  // req.body 将具有文本域数据,如果存在的话
})

我们可以使用以下语句,在路由处理程序中公开文件:

app.use('/uploads', express.static('uploads'));

现在,我们已经成功使用 Multer 处理文件上传并将其公开于 Web 上了。

完整实例

以下是一个完整的示例,展示如何处理文件上传并将其公开于 Web 上:

const express = require('express');
const multer = require('multer');

const app = express();

const upload = multer({ dest: 'uploads/' });

app.post('/upload', upload.single('avatar'), function (req, res, next) {
  // req.file 是 `avatar` 文件的信息
  // req.body 将具有文本域数据,如果存在的话
})

app.use('/uploads', express.static('uploads'));

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});
参考链接