2016-04-03 10 views
0

UIからのリクエストでNode.jsを使用してエラーチェックを行っています。 UIには、サイズ、色、スタイルの3つの入力フィールドがあります。ユーザーは色とサイズを選択する必要がありますが、スタイルを選択する必要はありません。エラーチェックでは、色とサイズを選択する必要があります。Node.jsのエラーチェック時にreqが定義されていません

if (req.query.size == 'undefined' || req.query.color == 'undefined') { 
    console.log("Did not select size or color"); 
    res.json({ 
     Error: "Must pick size and color!" 
    }); 
} else { 
    console.log(req.query.color); 
    console.log(req.query.size); 
    var selection = 'api' + req.query.size + '/' + req.query.color; 
}; 

ユーザーが色とサイズを選択しなかった場合、これをキャッチせずに「else」に移動します。この場合、コンソールは色とサイズのために 'undefined'を表示します。どのようにこれを修正するための任意の提案?私は

req.query.size == undefined || req.query.color == undefined 

または

typeof req.query.size == 'undefined' || typeof req.query.color == 'undefined' 

をすれば、私は言ってコンソールにエラーが出ること

注意「エラー:未定義のは、有効なURIまたはオプションの対象ではありません」

function request (uri, options, callback) { 
    if (typeof uri === 'undefined') { 
     throw new Error('undefined is not a valid uri or options object.') 
    } 
    .... 
    return new request.Request(params) 
} 

は、私は完全にこれを取る必要があります:私は、ノードモジュールに付属のindex.js、で、次のコードがあることに気づきましたか?

答えて

0

問題はクライアント上にあるようです。ユーザーがサイズまたは色を選択しない場合、ユーザーは「該当なし」ではなく要求内で定義されていません。最初のif文で未定義もチェックできます

if (req.query.size === 'N/A' || req.query.size === undefined ... 
+0

ありがとう、私の質問は明確ではなく、私はそれを更新しました。あなたが提案したreq.query.size == undefinedを実行しようとしたとき、私はコンソールでこのエラーを受け取ります: "エラー:undefinedは有効なuriまたはoptionsオブジェクトではありません。" –

+0

typeof req.query.size == 'undefined' – gabesoft

+0

お試しいただきありがとうございますが、req.query.size ===未定義と同じように動作します。正しい出力が得られるが、コンソールにエラーがあります: "エラー:未定義は有効なURIまたはオプションオブジェクトではありません" –

関連する問題