次のいずれかに対応できるようにしたい。
unitedstatesofamerica
united-states-of-america
したがって、ダッシュの有無にかかわらず文字に一致し、どちらも許可します。
これの目的は、ルーターに着信する uris を一致させることができるようにすることです。
たとえば、発信者が seo に適した値を送信できるようにするため、az に柔軟性を持たせ、任意の単語を区切ることができるようにしたいと考えています。
/countries/united-states-of-america
/countries/unitedstatesofamerica
/countries/germany
/countries/stlucia
/countries/st-lucia
等
私はkoa-controllerを使用しており、これを許可する正規表現ルートを考え出そうとしています。私の知る限り、koa-controller は正規表現へのミドルウェア パスを使用していると思います
私が求めていることは、理解できなかった人にとって不明確ではありません。名前にダッシュがあるかどうかにかかわらず、呼び出し元が名前を許可する URL を送信できるようにする、koa-controller ルートの正規表現を使用してルートを作成しようとしています。
これが私が運なしで試したことです。正規表現を正しく取得していないか、正規表現を koa-route に追加する方法で構文が正しくないか、または両方が同時に間違っているかのいずれかです。どちらが正しいかわかりません。
'/countries/:countryUrlFriendlyName(/^[a-z-]+$/i)/states/:stateUrlFriendlyName(/^[a-z-]+$/i)/cities/:cityUrlFriendlyName(/^[a-z-]+$/i)': {to: 'city#findByCountryAndStateAndCityUrlFriendlyName'}
'/countries/:(/^[a-z-]+$/i)/states/:(/^[a-z-]+$/i)/cities/:(/^[a-z-]+$/i)': {to: 'city#findByCountryAndStateAndCityUrlFriendlyName'}
'/countries/(/^[a-z-]+$/i)/states/(/^[a-z-]+$/i)/cities/(/^[a-z-]+$/i)': {to: 'city#findByCountryAndStateAndCityUrlFriendlyName'},
'/countries/:countryUrlFriendlyName\/^[a-z-]+$/i\/states/:stateUrlFriendlyName\/^[a-z-]+$/i\/cities/:cityUrlFriendlyName\/^[a-z-]+$/i': {to: 'city#findByCountryAndStateAndCityUrlFriendlyName'},
'/countries/:countryUrlFriendlyName/^[a-z-?]+$/i/states/:stateUrlFriendlyName/^[a-z-?]+$/i/cities/:cityUrlFriendlyName/^[a-z-?]+$/i': {to: 'city#findByCountryAndStateAndCityUrlFriendlyName'},
'/countries/:countryUrlFriendlyName(/^[a-z-?]+$/i)\/states/:stateUrlFriendlyName(/^[a-z-?]+$/i)/cities/:cityUrlFriendlyName(/^[a-z-?]+$/i)': {to: 'city#findByCountryAndStateAndCityUrlFriendlyName'},
'/countries/:\/^[a-z-]+$/i\/states/:\/^[a-z-]+$/i\/cities/:\/^[a-z-]+$/i': {to: 'city#findByCountryAndStateAndCityUrlFriendlyName'}
これらはすべて、上記でこれを機能させるための試みでした。さまざまなルート定義をすべて試しましたが、たとえば次の着信要求に一致するものはありませんでした。
/countries/united-states-of-america/states/illinois/cities/chicago
例として。動作する koa ルート用に定義されたルートを取得しようとしています。
たとえば、countryUrlFriendlyNameは、koa-controller ミドルウェアのコントローラー アクション メソッドにマップされる名前付きパラメーターです。ダッシュの有無にかかわらず、これらのパラメータの値を人々が送信できるようにしたいと考えています。
これらのパラメーターがマップされているコントローラーがあります。したがって、to: の部分は、それらの :[param name] がマップする # にちなんで名付けられた関数にマップしていることを意味します。
ストーリーには続きがあることがわかるように、ルートは少し長くなりますが、例として国で正規表現を機能させることに集中しようとしました。私の完全なルートでは、countries/[name]/states/name/cities/[name] が許可されます。これは [name] であり、ハイフンを付けて送信するかどうかを許可します。はい、ハイフンが存在するか、ランダムであるか、または存在しない可能性があります.
Web チームが API に送信するいくつかの seo 名の一致をリクエストできるようにしています。