@koa/multer
Version:
Route middleware for Koa that handles `multipart/form-data` using multer
120 lines (81 loc) • 3.06 kB
Markdown
> Route middleware for Koa that handles `multipart/form-data` using [multer][]
[![NPM version][npm-img]][npm-url]
[![NPM Downloads][downloads-image]][npm-url]
[![Build status][actions-img]][actions-url]
[![Test coverage][coveralls-img]][coveralls-url]
[![Dependency status][david-img]][david-url]
[![License][license-img]][license-url]
This module is a fork of [koa-multer][], the most widely used multer middleware in the koa community. Due to lack of maintenance, it was forked to the official Koa organization and is available under `@koa/multer` package name.
> Note that you must install either `multer@1.x` (Buffer) or `multer@2.x` (Streams):
```sh
npm install --save @koa/multer multer
```
```js
const Koa = require('koa');
const Router = require('@koa/router');
const multer = require('@koa/multer');
const app = new Koa();
const router = new Router();
const upload = multer(); // note you can pass `multer` options here
// add a route for uploading multiple files
router.post(
'/upload-multiple-files',
upload.fields([
{
name: 'avatar',
maxCount: 1
},
{
name: 'boop',
maxCount: 2
}
]),
ctx => {
console.log('ctx.request.files', ctx.request.files);
console.log('ctx.files', ctx.files);
console.log('ctx.request.body', ctx.request.body);
ctx.body = 'done';
}
);
// add a route for uploading single files
router.post(
'/upload-single-file',
upload.single('avatar'),
ctx => {
console.log('ctx.request.file', ctx.request.file);
console.log('ctx.file', ctx.file);
console.log('ctx.request.body', ctx.request.body);
ctx.body = 'done';
}
);
// add the router to our app
app.use(router.routes());
app.use(router.allowedMethods());
// start the server
app.listen(3000);
```
| Name | Website |
| --------------- | ------------------------------- |
| **Nick Baugh** | <http://niftylettuce.com/> |
| **Imed Jaberi** | <https://www.3imed-jaberi.com/> |
[](LICENSE) © Fangdun Cai
[]: https://img.shields.io/npm/v/@koa/multer.svg?style=flat-square
[]: https://npmjs.org/package/@koa/multer
[]: https://github.com/koajs/multer/actions/workflows/unit-tests.yaml/badge.svg
[]: https://github.com/koajs/multer/actions
[]: https://img.shields.io/coveralls/koajs/multer.svg?style=flat-square
[]: https://coveralls.io/r/koajs/multer?branch=master
[]: https://img.shields.io/badge/license-MIT-green.svg?style=flat-square
[]: LICENSE
[]: https://img.shields.io/david/koajs/multer.svg?style=flat-square
[]: https://david-dm.org/koajs/multer
[]: https://img.shields.io/npm/dm/@koa/multer.svg?style=flat-square
[]: https://github.com/expressjs/multer
[]: https://github.com/koa-modules/multer