@andrewcaires/express
TypeScript icon, indicating that this package has built-in type declarations

1.1.4 • Public • Published

npm downloads size license

express

Decorators for express

Installation

The module is now available on npm! npm i @andrewcaires/express

Example usage

// index.ts

import {

  Application,
  Argument,
  Body,
  Controller,
  Delete,
  Get,
  Middleware,
  Next,
  Params,
  Post,
  Put,
  Res,
  Responses

} from "@andrewcaires/express";
import { NextFunction, Response } from "express";

@Controller("/test")
class TestController {

  public middleware(
    @Argument() arg: string,
    @Next() next: NextFunction
  ) {

    console.log("middleware", arg);

    return next();
  }

  @Post()
  @Middleware("middleware", "add")
  public add(
    @Res() res: Response,
    @Body() body: any
  ) {

    return Responses.data(res, body);
  }

  @Get()
  @Middleware("middleware", "all")
  public all(
    @Res() res: Response
  ) {

    return Responses.list(res, [1, 2, 3, 4, 5, 6, 7, 8, 9]);
  }

  @Delete("/:id")
  @Middleware("middleware", "del")
  public del(
    @Res() res: Response,
    @Params("id") id: string
  ) {

    return Responses.success(res, id);
  }

  @Get("/:id")
  @Middleware("middleware", "get")
  public get(
    @Res() res: Response,
    @Params("id") id: string
  ) {

    return Responses.data(res, { id, name: "test" });
  }

  @Put("/:id")
  @Middleware("middleware", "set")
  public set(
    @Res() res: Response,
    @Params("id") id: string
  ) {

    return Responses.success(res, id);
  }
}

const main = async () => {

  const app = new Application([

    new TestController,

  ], {

    path: "/api",

  });

  await app.listen();
};

main().catch(console.log);

Links

License

Readme

Keywords

Package Sidebar

Install

npm i @andrewcaires/express

Weekly Downloads

6

Version

1.1.4

License

MIT

Unpacked Size

33.1 kB

Total Files

5

Last publish

Collaborators

  • andrewcaires