vados-bodyparser

Module help parser request body for vados

Usage no npm install needed!

<script type="module">
  import vadosBodyparser from 'https://cdn.skypack.dev/vados-bodyparser';
</script>

README

vados-bodyparser

A plugin helps parse request body for vados

Installation

npm i vados-bodyparser -S

Examples

Typescript

import { GET, POST, PUT, DELETE, HEAD } from 'vados-route';
import { BODYPARSER } from 'vados-bodyparser';

export default class ChartController {
    @PUT('/chart/:id')
    @BODYPARSER([{
        autoCreate?: true, //[Boolean] Auto create folder if not existed
        mimes: string, //Can inject data by string or fix string mime type. "() => `${state.config.ext}`" or 'jpg|png|.*'
        limits: {
            fileSize: number|string//Can inject data by string or fix string mime type. "() => state.config.maxSize" or 1024 (1MB)
        },
        returnType?: String; // [String] return only path, [Object] return full object file
        returnPath?: string; // Return path after uploaded. Can inject "() => `upload/${state.auth.projectId}`" or "images/"
        name: 'images'; // Field name
        uploadDir?: string // absolute path where file will be saved to. Can inject "() => `assets/upload/${state.auth.projectId}`" or 'assets/images'
        maxCount?: number|string // Max file can be uploaded. can inject "() => state.config.maxFile" or 3(max number of files upload)
        resize?: [ // Auto resize image base on your configuration here
            {w: -1000 }, // Auto resize origin when width > 1000. If width < 1000 do nothing
            {w: 32, h: 32, ext: 'thumb'},
            {w: 224, h: 200, ext: 'list.pc'},
            {w: 358, h: 200, ext: 'list.tab'},
            {w: 270, h: 200, ext: 'list.mob'}
        ] // Can inject "() => state.config.resize"
    }])
    static async add({
        body, params
    }) {
        body.id = params.id; // Assign body data to params which is got from client
        return body; // Return request body which is got from client
    }
}