Node.js を使用して、スクリプト可能な URL リダイレクトを処理しようとしています。非常にうまく機能していますが、スクリプトは他の人が管理するため、できるだけ単純な形式にする必要があります。
私がやりたいのは、ビルダーパターンを使用して、次のようなものを作成できるようにすることです。
redirectWhen.isMobileDevice().urlMatches("http://www.somewhere.com").thenGoTo("http://mobile.somewhere.com");
redirectWhen.urlMatches("http://subdomain.somewhere.com").thenGoTo("http://www.somewhere.com/somefolder/");
次に、結果に基づいてリダイレクトします (基本的に、チェーン内のすべてのアイテムに一致した最後のものが勝ちます)。すべての関数 ( isMobileDevice()
&urlMatches(...)
いくつかの単純な文字列チェックを実行し、それ以上何も実行しないと想像すると、すべて正常に動作します。
しかしisMobileDevice()
、何かへの HTTP リクエストを実行する関数が必要です。これは、応答が完了したときに呼び出されるコールバック関数を持つことを意味します。これを行うことは可能で、ビルダー パターンをそのまま維持することはできますか? 次のようなことができると思います:
redirectWhen.isMobileDevice(function() {
urlMatches("...").thenGoTo("...");
});
しかし、それは私が望む以上にスクリプトを複雑にしています。これらのスクリプトを管理する担当者は基本的な JavaScript を知っていますが、コールバックのネストを開始する必要がある場合、すぐに混乱することになると思います。
ここでは不可能なことを達成しようとしていると思いますが、それを確認できるほど十分なJSを知りません!