Skip to content

Commit ddee6cd

Browse files
ivanpadavanjotamorais
authored andcommitted
example
1 parent 44f809e commit ddee6cd

File tree

4 files changed

+91
-0
lines changed

4 files changed

+91
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import "reflect-metadata";
2+
import * as express from "express";
3+
import {useExpressServer} from "../../src/index";
4+
5+
let app = express(); // create express server
6+
useExpressServer(app, {
7+
controllers: [__dirname + "/controllers/*{.js,.ts}"] // register controllers routes in our express app
8+
});
9+
app.listen(3001); // run express app
10+
11+
console.log("Express server is running on port 3001. Open http://localhost:3001/blogs/ or http://localhost:3002/posts/");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import {Request} from "express";
2+
import {Get} from "../../../src/decorator/Get";
3+
import {Req} from "../../../src/index";
4+
import {Post} from "../../../src/decorator/Post";
5+
import {Put} from "../../../src/decorator/Put";
6+
import {Patch} from "../../../src/decorator/Patch";
7+
import {Delete} from "../../../src/decorator/Delete";
8+
9+
export class BaseControllerClass {
10+
name: string;
11+
constructor(name: string) {
12+
this.name = name;
13+
}
14+
15+
@Get()
16+
getAll() {
17+
return [
18+
{id: 1, name: `First ${this.name}!`},
19+
{id: 2, name: `Second ${this.name}!`}
20+
];
21+
}
22+
23+
@Get("/:id")
24+
getOne() {
25+
return {id: 1, name: `First ${this.name}!`};
26+
}
27+
28+
@Post("")
29+
post(@Req() request: Request) {
30+
let entity = JSON.stringify(request.body);
31+
return `${this.name} ${entity} !saved!`;
32+
}
33+
34+
@Put("/:id")
35+
put(@Req() request: Request) {
36+
return `${this.name} # ${request.params.id} has been putted!`;
37+
}
38+
39+
@Patch("/:id")
40+
patch(@Req() request: Request) {
41+
return `${this.name} # ${request.params.id} has been patched!`;
42+
}
43+
44+
@Delete("/:id")
45+
remove(@Req() request: Request) {
46+
return `${this.name} # ${request.params.id} has been removed!`;
47+
}
48+
}
49+
50+
export function BaseController(name: string): { new(): BaseControllerClass } {
51+
return class extends BaseControllerClass {
52+
constructor() {
53+
super(name);
54+
}
55+
};
56+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import {JsonController} from "../../../src/decorator/JsonController";
2+
import {BaseController, BaseControllerClass} from "./BaseController";
3+
import {Get} from "../../../src/decorator/Get";
4+
5+
@JsonController("/blogs")
6+
export class BlogController extends BaseController("blog") {
7+
constructor() {
8+
super();
9+
}
10+
11+
@Get()
12+
getAll() {
13+
return [
14+
{id: 1, name: `First ${this.name}!`},
15+
{id: 2, name: `Second ${this.name}!`},
16+
{id: 3, name: `Third ${this.name}!`}
17+
];
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {JsonController} from "../../../src/decorator/JsonController";
2+
import {BaseController, BaseControllerClass} from "./BaseController";
3+
4+
@JsonController("/posts")
5+
export class PostController extends BaseController("post") {}

0 commit comments

Comments
 (0)