Optimiere Middleware-Verarbeitung in Flummpress und Router, verbessere Typen für Middleware
This commit is contained in:
parent
31230f272f
commit
57f8c5d18c
@ -72,11 +72,9 @@ export default class Flummpress {
|
|||||||
const handler = methods[method!];
|
const handler = methods[method!];
|
||||||
const middleware = methods[`${method}mw`];
|
const middleware = methods[`${method}mw`];
|
||||||
|
|
||||||
if(middleware) {
|
|
||||||
for(const mw of middleware) {
|
for(const mw of middleware) {
|
||||||
await mw(req, res, () => {});
|
await mw(req, res, () => {});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if(handler) {
|
if(handler) {
|
||||||
req.params = req.parsedUrl.pathname.match(new RegExp(pathPattern))?.groups || {};
|
req.params = req.parsedUrl.pathname.match(new RegExp(pathPattern))?.groups || {};
|
||||||
|
@ -2,9 +2,7 @@ import fs from "node:fs";
|
|||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import Tpl from "./template.js";
|
import Tpl from "./template.js";
|
||||||
|
|
||||||
import { RouteCallback } from "./types.js";
|
import { Middleware, RouteCallback } from "./types.js";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default class Router {
|
export default class Router {
|
||||||
private routes: Map<RegExp | string, { [key: string]: RouteCallback | RouteCallback[] }>;
|
private routes: Map<RegExp | string, { [key: string]: RouteCallback | RouteCallback[] }>;
|
||||||
@ -166,9 +164,11 @@ export default class Router {
|
|||||||
path: string | RegExp,
|
path: string | RegExp,
|
||||||
cb: RouteCallback,
|
cb: RouteCallback,
|
||||||
method: string,
|
method: string,
|
||||||
middleware: RouteCallback | RouteCallback[] = []
|
middleware: Middleware | Middleware[] = []
|
||||||
): this {
|
): this {
|
||||||
const middlewareArray = Array.isArray(middleware) ? middleware : [middleware];
|
if(!Array.isArray(middleware)) {
|
||||||
|
middleware = [ middleware ];
|
||||||
|
}
|
||||||
|
|
||||||
if(!this.routes.has(path)) {
|
if(!this.routes.has(path)) {
|
||||||
this.routes.set(path, {});
|
this.routes.set(path, {});
|
||||||
@ -177,7 +177,7 @@ export default class Router {
|
|||||||
this.routes.set(path, {
|
this.routes.set(path, {
|
||||||
...this.routes.get(path),
|
...this.routes.get(path),
|
||||||
[method]: cb,
|
[method]: cb,
|
||||||
[`${method}mw`]: middlewareArray,
|
[`${method}mw`]: middleware as RouteCallback[],
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log("route set:", method.toUpperCase(), path);
|
console.log("route set:", method.toUpperCase(), path);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user