add queryParams
This commit is contained in:
parent
129366c087
commit
d4075a6bb5
|
@ -23,6 +23,8 @@ httpServer.add("GET", "/api/user/:userId", (req, rep) => {
|
||||||
rep.status(Status.Teapot)
|
rep.status(Status.Teapot)
|
||||||
.type("application/json");
|
.type("application/json");
|
||||||
|
|
||||||
|
console.log(req.queryParams);
|
||||||
|
|
||||||
return JSON.stringify(
|
return JSON.stringify(
|
||||||
{
|
{
|
||||||
code: Status.Teapot,
|
code: Status.Teapot,
|
||||||
|
|
|
@ -227,7 +227,8 @@ export class RouteRequest {
|
||||||
path: string;
|
path: string;
|
||||||
headers: Headers;
|
headers: Headers;
|
||||||
method: string;
|
method: string;
|
||||||
pathParams: { [key: string]: string | number };
|
queryParams: { [key: string]: string };
|
||||||
|
pathParams: { [key: string]: string };
|
||||||
|
|
||||||
constructor(request: Request) {
|
constructor(request: Request) {
|
||||||
this.url = request.url;
|
this.url = request.url;
|
||||||
|
@ -236,20 +237,37 @@ export class RouteRequest {
|
||||||
this.headers = request.headers;
|
this.headers = request.headers;
|
||||||
this.method = request.method;
|
this.method = request.method;
|
||||||
this.pathParams = {};
|
this.pathParams = {};
|
||||||
|
this.queryParams = this.paramsToObject(urlObj.searchParams.entries());
|
||||||
}
|
}
|
||||||
|
|
||||||
header(name: string) {
|
private paramsToObject(entries: IterableIterator<[string, string]>) {
|
||||||
|
const result: { [key: string]: string } = {};
|
||||||
|
for (const [key, value] of entries) {
|
||||||
|
result[key] = value;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
header(name: string): unknown {
|
||||||
const matchingHeader = Array.from(this.headers.keys()).find((headerName) =>
|
const matchingHeader = Array.from(this.headers.keys()).find((headerName) =>
|
||||||
headerName === name
|
headerName === name
|
||||||
);
|
);
|
||||||
return matchingHeader ? this.headers.get(matchingHeader) : undefined;
|
return matchingHeader ? this.headers.get(matchingHeader) : undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
cookie(name: string) {
|
cookie(name: string): unknown {
|
||||||
const allCookies = cookie.getCookies(this.headers);
|
const allCookies = cookie.getCookies(this.headers);
|
||||||
const allCookieNames = Object.keys(allCookies);
|
const allCookieNames = Object.keys(allCookies);
|
||||||
return allCookieNames.includes(name) ? allCookies[name] : undefined;
|
return allCookieNames.includes(name) ? allCookies[name] : undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pathParam(name: string): string {
|
||||||
|
return this.pathParams[name];
|
||||||
|
}
|
||||||
|
|
||||||
|
queryParam(name: string): string {
|
||||||
|
return this.queryParams[name];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class RouteReply {
|
export class RouteReply {
|
||||||
|
|
Reference in New Issue
Block a user