2
var http = require('http'),
    url = require('url'),
    route = require('router')();
...
route.get('/{betNameType}', function(req, res) {
    var query = url.parse(req.url, true).query;
    if (!Object.keys(query).length) {
       // query string is empty
    }  
    else {
       // query string is set
    }
}

こんにちは、みんな!。

私はjavacript / node.jsにかなり慣れていません。私のコードを単純化することは可能でしょうか。具体的には、「クエリ」が空かどうかを検証する部分です。私の知識では、より簡単な方法は見つかりませんでした

4

1 に答える 1

1

あなたの方法はうまくいきます。

オブジェクトをチェックする一般的なケースでは、クエリ文字列 (ソース コードへのリンク) では問題にならない列挙不可能なプロパティのエッジ ケースで失敗し、Object.getOwnPropertyNames代わりに を使用することで解決できますObject.Keys

ブラウザー JavaScript ではなく nodejs を実行していることを考えるとObject.Keys、オブジェクトに列挙可能なプロパティがないかどうかを確認するには、おそらく using が最もクリーンです。私が変更する唯一のことは、これが実際にチェックしているものであるため、.length===0代わりに明示的に書く.lengthことです(オブジェクトにキーがなく、そのキーが偽物である可能性がないことではありません)

この質問は役に立つかもしれません。

于 2013-05-15T10:16:36.177 に答える