Ich bin neu in Typescript, also ertragen Sie mit mir.Erweitern express.Anfrage im Projekt
Ich arbeite an einem Express-basierten Web-Service. Ich möchte, dass ein Teil der frühen Middleware ein Logging-Objekt auf das Request-Objekt setzt und später im Request-Handler-Flow verwendet.
Die Middleware und der letzte Anforderungshandler sind in verschiedenen Dateien organisiert.
Was wäre die beste Möglichkeit, das express.Request-Objekt zentral zu erweitern, um die Verwendung dieses Logging-Objekts zu ermöglichen, ohne dass es Warntypen gibt?
Nur um zu zeigen, was ich habe und will:
Die Datei, die mein Log-Objekt Express- und setzt instanziiert:
const app = express();
const log = console;
app.use((req: express.Request, res: express.Response, next: express.NextFunction) => {
req.log = log;
next();
});
Ein Request-Handler:
(req: express.Request, res: express.Response): void => {
req.log("request was made");
res.send();
}
Das ist genial! Und es kann in meinem Projekt in eine separate .d.ts-Datei gehen, so dass es nirgends verschmutzt. Ill testen Sie dies für eine Weile und sehen, ob es irgendwelche Fallstricke gibt. :) – ath88