Multer 是 Node.js 的一个中间件,用于处理 multipart/form-data 类型的表单数据(包括文件上传)。而@types/multer 是 Multer 的 TypeScript 定义文件,可以帮助我们在 TypeScript 项目中使用 Multer。本文将介绍如何使用 @types/multer。
安装
首先,我们需要安装 Multer 和 @types/multer。可以使用 npm 或者 yarn 安装。
npm install multer @types/multer # 或 yarn add multer @types/multer
使用
接下来,我们就可以按照以下步骤来使用 Multer:
- 引入 Multer
import multer from 'multer';
- 配置 Multer
-- -------------------- ---- ------- ----- ------- - -------------------- ------------ -------- ----- ----- --- - -------- ------------ -- --------- --------- --- -- --------- -------- ----- ----- --- - -------- -------------- - --- - ------------ -- --------------- - --- ----- ------ - -------- -------- ------- ---展开代码
以上代码中,我们通过 multer.diskStorage() 来配置 Multer 的磁盘存储引擎。该存储引擎将上传的文件保存到指定目录,并使用指定格式重新命名文件。
- 处理上传请求
app.post('/upload', upload.single('image'), (req, res) => { // req.file 中包含上传的文件信息 res.send('File uploaded successfully!'); });
通过调用 upload.single(),我们告诉 Multer 只处理单个文件上传,字段名为 “image”。Multer 会把上传的文件存储到指定配置的地方,并把相关信息存储在 req.file 中。
完整示例代码
以下是一个完整的文件上传示例,可以将其复制到 TypeScript 项目中并运行。
-- -------------------- ---- ------- ------ -------- - -------- -------- - ---- ---------- ------ ------ ---- --------- ----- --- - ---------- ----- ---- - ----- ----- ------- - -------------------- ------------ -------- ----- ----- --- - -------- ------------ -- --------- -------- ----- ----- --- - -------- -------------- - --- - ------------ - --- ----- ------ - -------- -------- ------- --- ------------ ----- ---- -- - ---------- -------- ------ ------------ ----- ------------- ---------------- ------------------------------ ------ ----------- ------------ -- ------- ----------------------------- ------- --- --- ------------------- ----------------------- ----- ---- -- - ----- ---- - --------- -- ------- - ------ ------------------------ ---- ------------ - -------------- -------- ---------------- --- ---------------- -- -- - ------------------- ------- -- --------------------------- ---展开代码
该示例中,通过访问根路径可以看到一个包含文件上传表单的简单页面。选择一个文件并点击上传按钮即可完成文件上传操作。上传的文件将保存在 ./uploads 目录下。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/158883