-
-
Notifications
You must be signed in to change notification settings - Fork 47
/
app.ts
40 lines (31 loc) · 894 Bytes
/
app.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { getCookies, setCookie } from "https://deno.land/std@0.171.0/http/cookie.ts";
import { App, Area, Controller, Get, Redirect, Req, Res } from "alosaur/mod.ts";
import { WebsocketMiddleware } from "./websocket.middlware.ts";
@Controller("/home")
export class HomeController {
@Get("/")
default(@Res() response: Response) {
const cookie = { name: "name", value: "Cat" };
setCookie(response.headers, cookie);
return Redirect("/home/text");
}
@Get("/text")
text(@Req() request: Request) {
const cookies = getCookies(request.headers);
return `Hey! ${cookies["name"]}`;
}
}
@Area({
controllers: [HomeController],
})
export class HomeArea {}
const app = new App({
areas: [HomeArea],
logging: false,
});
app.useStatic({
root: `${Deno.cwd()}/examples/ws/www`,
index: "index.html",
});
app.use(/^\/ws$/, new WebsocketMiddleware());
app.listen();