問題タブ [dynamic-routing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
subdomain - NextJS による動的サブドメイン ルーティング
動的サブドメイン ルーティング機能を NextJS に実装するにはどうすればよいですか?
abc
例: ユーザーがサイトにユーザー名を持っている場合、ユーザーはxyz
自分のサイトにアクセスできますabc.xyz.com
また、ユーザーがabc.com
ドメインを持って
いる場合、将来誰かが開いた場合にサービスを提供することを指すabc.com
ことができます。また、URL にもが表示されます。abc.xyz.com
abc.com
abc.xyz.com
abc.com
vhost や wildcard-subdomains などの NPM のいくつかのプラグインを調査しましたが、この問題を解決する正しい方法であるかどうかはわかりません。
vhost ではhosts
ローカル システムのシステムを変更する必要があり、wildcard-subdomain は純粋にルーティングで問題を解決します。
一時的に機能するコードでServer.jsをカスタマイズしましたが、本番環境で使用できるソリューションではないようです:
サーバー.js
そして_app.jsで
また、私のホストではdemo.demo.com
、localhost
.
サイトは私にとっては機能しますdemo.demo.com:3000
が、データベースとレコードを使用して本番シナリオで一般化しCNAME
、ユーザー アクションで CNAME レコードを自動的に追加/変更する方法。
javascript - ExpressJS: 実行時にルートを動的に追加する
NodeJS & ExpressJS でサーバーを再起動せずに、実行時に新しいルートを追加できるようにしたいと考えています。この記事のような同様のアプローチを作成しました: https
://alexanderzeitler.com/articles/expressjs-dynamic-runtime-routing/技術的には、記事と同様に実行時に新しいファイルとロジックを追加できますが、問題はAPIルートが一致しなかった場合、404 JSON応答を送信します(想定どおり)。
私が抱えている問題は、静的ルートが動的に作成されたルートよりも優先されるため、動的に作成されたルートに到達しないことだと思います。これは、作成されたルートがエラー処理後にマウントされるため、決して到達しないことを意味します。app.jsのマイ コード
エラー処理をコメントアウトすると、実行時に作成したルートに到達できますが、エラー処理を使用すると、回避したいサーバーの再起動後に動的に作成されたルートにしか到達できません。
動的に追加されたルートはロジック、モデル プロパティ、http メソッド/動詞、および API エンドポイントが異なるため、この問題はクエリ パラメータでは解決されません。例
GET/POST /api/{endpoint}
GET/POST /api/foo/{endpoint}
GET/PUT/DELETE /api/foo/bar/{endpoint}/:id
基本的に次のいずれかが必要だと思い
ます。エラー処理の前に動的に作成されたルートをマウントする方法-現在行き詰まっているか、または
2)ルートスタックを変更します-私が読んだことは非現実的で、遅く、悪い習慣であり、エラーが発生しやすいです
3)代替ソリューションを見つけます
誰かが私を助けてくれることを願っています。
よろしくお願いします
EDIT
新しいルートを作成するためのコードは次のとおりです。関連するエンドポイントは、POST メソッドの /api/databases/ です。
スニペットのコントローラーは、さまざまなモデルのすべてのエンドポイントのすべての CRUD 操作を処理するモジュラー コントローラー ファイルです。各ルートはモデル、コントローラー、およびルートに分割され、ロジックを分離してより適切に維持します。
POST メソッドでは、最初に、作成するエンドポイントが既に存在するかどうかを確認します。存在する場合は、エンドポイントが既に存在するという 422 応答で応答します。存在しない場合は、データベース エンドポイントにモジュラー コントローラーを使用してエントリを作成し、作成する必要があるエンドポイントのモデル、コントローラー、およびルートを作成します。
作成ロジックは次のとおりです。
ここでは基本的に、POST メソッドから、非同期で作成されたモデル、コントローラー、およびルート ファイルにデータを渡します。すべてのファイルが作成されたら、エンドポイント ルートをアプリにマウントします。ルートをマウントするロジックは次のとおりです。
作成されたルートは次のようになります。
checkAuth には、承認/認証のためのいくつかのロジックが含まれています。
コードは、エラー処理の前にルートの配置を処理する方法がわからないことを除いて、私がやりたいことのほとんどを行います。