📅  最后修改于: 2023-12-03 15:08:22.906000             🧑  作者: Mango
Multer 是一款 Node.js 的中间件,用于处理 HTTP POST 请求的文件类型数据。它非常适用于上传文件,它可以很容易地与 Express 或者 Koa 框架一起使用。
在本篇文章中,我们将介绍如何使用 Multer 来处理文件上传并将其公开于 Web 上。
首先,我们需要安装 Multer。在安装之前,我们需要先安装 Node.js 和 npm。在命令行中,输入以下命令安装 Multer:
npm install --save 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!');
});