63 lines
1.3 KiB
TypeScript
63 lines
1.3 KiB
TypeScript
import { Status } from "https://deno.land/std@0.186.0/http/http_status.ts";
|
|
import prettyTime from "npm:pretty-time";
|
|
import { HTTPServer } from "../mod.ts";
|
|
|
|
const httpServer = new HTTPServer();
|
|
|
|
httpServer.middleware(async (req, rep, done) => {
|
|
rep.header("Access-Control-Allow-Origin", "*");
|
|
console.log(`${req.method} - ${req.remoteIpAddr} - ${req.path}`);
|
|
const processTime = await done();
|
|
console.log(`Processed in ${prettyTime(processTime)}`);
|
|
});
|
|
|
|
httpServer.error((req, _rep) => {
|
|
return JSON.stringify(
|
|
{
|
|
code: Status.NotFound,
|
|
message: "Route not found!",
|
|
path: req.path,
|
|
url: req.url,
|
|
},
|
|
null,
|
|
2,
|
|
);
|
|
});
|
|
|
|
httpServer.get("/", (req, rep) => {
|
|
rep.status(Status.Teapot)
|
|
.header("working", "true")
|
|
.type("application/json")
|
|
.cookie("working", "true");
|
|
|
|
console.log(req.cookie("working"));
|
|
|
|
return {
|
|
code: Status.Teapot,
|
|
message: "Hello World!",
|
|
};
|
|
});
|
|
|
|
httpServer.get("/api/user/:userId", (req, rep) => {
|
|
rep.status(Status.Teapot)
|
|
.type("application/json");
|
|
|
|
console.log(req.queryParams);
|
|
|
|
return JSON.stringify(
|
|
{
|
|
code: Status.Teapot,
|
|
message: `UserID is ${req.pathParam("userId")}`,
|
|
queryParams: req.queryParams,
|
|
},
|
|
null,
|
|
2,
|
|
);
|
|
});
|
|
|
|
httpServer.listen({
|
|
port: 8080,
|
|
staticLocalDir: "/static",
|
|
staticServePath: "/assets",
|
|
});
|