This repository has been archived on 2023-06-09. You can view files and clone it, but cannot push or open issues or pull requests.
deno-http/example/test.ts

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",
});