分类
Javascript

Express multer的基本用法

Multer是用于处理multipart/form-data的node.js中间件,主要用于上传文件。 它基于busboy之上编写,以实现最高效率。本文将简单介绍怎样使用multer上传文件。Multer 会添加一个 body对象以及file或files对象到express的request对象中。body对象包含表单的文本域信息,file或files 对象包含对象表单上传的文件信息。

1、安装

npm install multer

2、API

var express = require('express')
var multer  = require('multer')
var upload = multer({ dest: 'uploads' })

var app = express()

app.post('/profile', upload.single('avatar'), function (req, res, next) {
})

3、文件信息
每个文件具有下面的信息:

属性 描述 备注
fieldname Field name 由表单指定
originalname 用户计算机上的文件的名称
size 文件大小(字节单位)
destination 保存在 destination 中的文件名 DiskStorage
filename 文件大小(字节单位) DiskStorage
path 已上传文件的完整路径 DiskStorage

4、multer(opts)

Multer 接受一个 options 对象,其中最基本的是 dest 属性,这将告诉 Multer 将上传文件保存在哪。如果你省略 options 对象,这些文件将保存在内存中,永远不会写入磁盘。

以下是可以传递给 Multer 的选项。

选项 描述
dest/storage 在哪里存储文件
fileFilter 文件过滤器,控制哪些文件可以被接受
limits 限制上传的数据
preservePath 保存包含文件名的完整文件路径

5、完整示例: https://f99h8.sse.codesandbox.io/
6、注意

Multer 不会处理任何非 multipart/form-data 类型的表单数据。