[解決済み】Typescriptを使用してExpress Requestオブジェクトを拡張する
2022-04-18 06:13:30
質問
ミドルウェアからexpress requestオブジェクトにtypescriptでプロパティを追加しようとしています。しかし、オブジェクトに追加のプロパティを追加する方法がわかりません。できればブラケット記法は使いたくないのですが。
可能であれば)これと似たようなことを書けるような解決策を探しています。
app.use((req, res, next) => {
req.property = setProperty();
next();
});
解決方法は?
カスタム定義を作成し、Typescript の機能である
宣言のマージ
. これは一般的に、例えば次のように使われます。
method-override
.
ファイルを作成する
custom.d.ts
を作成し、それを必ず
tsconfig.json
's
files
-セクションがあれば、それを使用します。内容は以下のようになります。
declare namespace Express {
export interface Request {
tenant?: string
}
}
これによって、コードのどの部分でも、次のような使い方ができるようになります。
router.use((req, res, next) => {
req.tenant = 'tenant-X'
next()
})
router.get('/whichTenant', (req, res) => {
res.status(200).send('This is your tenant: '+req.tenant)
})
関連
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み】「npm install」と「npm rebuild」の違いとは?
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] MongoNetworkError: 最初の接続でサーバー [localhost:27017] への接続に失敗 [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] 。
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み] TypeScriptでの取得と設定
-
[解決済み】TypeScriptのインターフェースと型について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】passport.js passport.initialize() ミドルウェアが使用されていません。
-
[解決済み】Passport.js - エラー: ユーザーのセッションへのシリアライズに失敗しました。
-
[解決済み】E11000重複キーエラー mongodb mongooseのインデックス
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] Node.jsのホスト名/IPが証明書のaltnamesと一致しない
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] nodejs - http.requestでresponse.writeを使用する場合、第一引数は文字列またはBufferでなければなりません。
-
[解決済み] ランタイム 'node' が PATH で見つからない - Visual Studio Code と Node.js
-
[解決済み] "致命的なエラーです。grunt "コマンドを実行すると、"Unable to find local grunt. "と表示されます。