1.0.3 • Published 4 years ago

@tosee/ssml-builder v1.0.3

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

codecov NPM version Test

介绍

(fieldname: string, file: NodeJS.ReadableStream, filename: string, encoding?: string, mimetype?: string) => Promise<any>;

该函数声明对文件流的处理,其中file流必须在该函数中被消费,该函数fieldname参数的作为parse函数返回值的files的对象的key,返回值作为value,即在实现为

(fieldname: string, file: NodeJS.ReadableStream, filename: string, encoding?: string, mimetype?: string) => {
    file.resume();
    return filname;
};

的情况下

const form = new FormData();
form.append("test",buffer,'test.jpg');
form.append("field","test");

parse函数的输出为

{
    field:"test",
    test:"test.jpg"
}

自定义

import { BusBoy, File, middleware } from '@tosee/busboy';
const app = new Koa();

app.use(async (ctx, next) => {
    const instance = new BusBoy({ headers: ctx.headers }, async (fieldname: string, file: NodeJS.ReadableStream, filename: string, encoding: string, mimetype: string) => {
        file.resume();
        return filename;
    });
    const { fields, files } = await instance.parse(ctx.request.req);
    ctx.body = Object.assign({}, (ctx.request as any).body, fields, files);
});

app.listen(3002);

装饰器

import Koa from 'koa';
import { BusBoy, File } from '@tosee/busboy';

export const app = new Koa();

class Test {
    @File(async (fieldname: string, file: NodeJS.ReadableStream, filename: string, encoding: string, mimetype: string) => {
        file.resume();
        return filename;
    })
    async handler(ctx, next) {
        ctx.body = ctx.request.body;
        await next();
    }
}

const instance = new Test();

app.use(instance.handler);

export const server = app.listen(3000);

中间件

import Koa from 'koa';
import { BusBoy, File, middleware } from '@tosee/busboy';

export const app = new Koa();

app.use(
    middleware(
        async (fieldname: string, file: NodeJS.ReadableStream, filename: string, encoding: string, mimetype: string) => {
            file.resume();
            return filename;
        }
    )
);

app.use((ctx, next) => {
    ctx.body = (ctx.request as any).body;
})

export const server = app.listen(3001);
1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago