Package Exports
- @andrewcaires/express
- @andrewcaires/express/package.json
Readme
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,
Responses,
Send
} from "@andrewcaires/express";
import { NextFunction } from "express";
@Controller("/test")
class TestController {
public middleware(@Argument() arg: boolean, @Next() next: NextFunction) {
console.log("middleware", arg);
next();
}
@Post()
@Middleware("middleware", "add")
public add(@Body() body: object, @Send() res: Responses) {
res.data(body);
}
@Get()
@Middleware("middleware", "all")
public all(@Send() res: Responses) {
res.list([1, 2, 3, 4, 5, 6, 7, 8, 9]);
}
@Delete("/:id")
@Middleware("middleware", "del")
public del(@Params("id") id: string, @Send() res: Responses) {
res.success(id);
}
@Get("/:id")
@Middleware("middleware", "get")
public get(@Params("id") id: string, @Send() res: Responses) {
res.data({ id, name: "test" });
}
@Put("/:id")
@Middleware("middleware", "set")
public set(@Params("id") id: string, @Send() res: Responses) {
res.success(id);
}
}
const main = async () => {
const app = new Application([
new TestController,
], {
path: "/api",
});
await app.listen();
};
main().catch(console.log);