1.1.3 • Published 2 months ago
@andrewcaires/express v1.1.3
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);