📜  multer npm (1)

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

Multer:Node.js 中的中间件,用于处理文件上传

Multer Logo

Multer 是一个 Node.js 中间件,用于处理 multipart/form-data 类型的数据(通常是通过 HTML 表单上传的文件)。它是一个构建于 busboy 之上的封装,可以很容易地集成到 Web 应用程序中。

Multer 允许上传多个文件,并提供了一些与上传相关的属性和方法。它还可以与其他中间件进行配合使用,如 body-parser,以便将文件和表单数据组合在一起使用。

安装

要开始使用 Multer,您需要在项目中安装其 NPM 包。

npm install --save multer
使用

要在 Express 应用程序中使用 Multer,只需将其引入并将其作为中间件添加到应用程序中。下面是一个示例:

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

const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads/')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

const upload = multer({ storage: storage })

app.post('/upload', upload.single('file'), (req, res) => {
  console.log('File uploaded successfully!');
  res.send('File uploaded successfully!');
});

app.listen(3000, () => {
  console.log('Server started on http://localhost:3000')
});

在这个示例中,我们首先在应用程序中导入了 Multer,然后创建了一个 storage 对象,其中 destination 属性指定要将文件保存到的文件夹,filename 属性指定要为上传的文件生成的文件名。

然后,我们使用 multer() 函数创建一个 Multer 实例,并将 storage 对象作为参数传递给它。最后,我们将上传处理程序添加到应用程序的路由中,以处理从客户端发送的 POST 请求。

现在,当客户端向应用程序发送 POST 请求时,并将一个名为 file 的文件上传到 /upload 路由时,服务器将接收到文件,并将它保存到指定的文件夹中。最后,客户端将收到一个响应,指示文件已成功上传。

更多示例

Multer 支持许多不同的配置选项和用法,包括:

  • 处理多个文件上传
  • 将文件上传保存到 Amazon S3 或其他云服务
  • 将表单文本字段和文件字段结合使用

Multer 的完整文档可以从 npmGitHub 获取。

结论

Multer 是 Node.js 中处理文件上传的强大中间件。它易于使用,同时也提供了许多灵活的选项和用法。如果你需要在你的 Web 应用程序中处理文件上传,Multer 是一个值得尝试的选择。