1

nginx プロキシの背後で実行される nodejs アプリケーションの一部として、このコードがあります。

var ip_address = (request.headers['x-real-ip']);
if (ip_address !== "127.0.0.1") {
    var ip = request.headers['x-real-ip'];
    console.log(ip);    
}
else {
    var ip = "173.194.41.100";
    console.log(ip);
}

私が達成しようとしているのは、ローカルの開発マシンで、テストのために固定 IP アドレスを使用することです。それ以外の場合は、リクエスト ヘッダーから x-real-ip を読み取ります。

私の質問は、これをより完全な証明にする方法はありますか?たとえば、このループをバイパスして var ip を null に戻す方法はありますか?

4

1 に答える 1

0

私の質問は、これをより完全な証明にする方法はありますか?たとえば、このループをバイパスして var ip を null に戻す方法はありますか?

少し変更すると、次のようにはipなりませんnull

var ip, ip_address;
ip = ip_address = request.headers['x-real-ip'];
if (ip === null || ip === "127.0.0.1") {
    ip = "173.194.41.100";
}
console.log(ip);

元のコードは、条件 ( ) が になり、 () を に取得するため、 に評価されたip null場合に作成されます。request.headers['x-real-ip']nullip_address !== "127.0.0.1"truerequest.headers['x-real-ip']nullip

上記の変更されたコードでは、その問題はなく、もう少し簡潔にすることもできました。

于 2012-07-07T08:14:04.113 に答える