sql >> データベース >  >> NoSQL >> MongoDB

エクスプレスパラメータルートにfindOneメソッドを使用しているのに、なぜfavicon.icoを取得するのですか?

    Webサイト(そのWebサイト上の任意のURL)にアクセスすると、ブラウザーは通常、同じドメインに/favicon.icoのリクエストも送信します。 そのため、Webサイトがサイトを視覚的に表現するアイコンを提供しているかどうかを確認してください。

    ワイルドカードのトップレベルルートを使用しているため:

    app.get('/:listRoute', ...)
    

    /favicon.icoのリクエストがヒットします 。リクエストされるのに注意する必要がある他のURLは次のとおりです:/robots.txt/humans.txt/sitemap.xml/ads.txt

    これを回避する方法はいくつかあります:

    1. ワイルドカードルートは、最初にreq.urlをチェックできます またはreq.params.listRoute 無視すべきものかどうかを確認します。

    2. ワイルドカードルートから除外したい他のトップレベルルートをこのルートの前の位置に配置して、最終的にこのルートに入らないようにすることができます。

    3. トップレベルのワイルドカードルートは使用しないでください。代わりに、/list/:listRouteのようなものを使用してください そのため、トップレベルのhttpリクエストと自動的に一致することはありません。トップレベルのワイルドカードルートを使用すると、サイトの他の将来の使用が妨げられ、サイトに他のトップレベルルートを追加する場合に下位互換性が生じる可能性があります。将来、/contactを追加したいとします。 または/login または/logout 。それらはすべて/:listRouteと競合します 。



    1. シャーディングされたmongoDBをアップグレードしたり、バランサーを停止したりすることはできません

    2. マングースはサブドキュメントへの参照を入力します

    3. MongoDBおよびC#:大文字と小文字を区別しない検索

    4. Node.jsを使用してMongoDBデータベースへのSSHトンネリング接続を確立する方法