2016-12-09 6 views
2

エクスプレスサーバーから受信した応答に基づいてフロントエンドでエラーを処理しようとしています。私はエクスプレスサーバーにデータを送信するフロントエンドからのPOSTリクエストを作成しています。このエンドポイント(以下、/endpoint)は、Spotify APIに要求を出し、曲のリストを返します。これが何らかの理由で失敗した場合、私はフロントエンドでユーザーに知らせる必要があります。私は以下に書いたコードは正しいと思ったが、SpotifyへのExpressリクエストが失敗したときにエラーメッセージを表示していない。ノードエクスプレスサーバーへのAPIコール後にエラーメッセージを表示

誰もが以下のコードで間違った点を見つけることができますか?

エクスプレスのApp

app.post('/endpoint', function(req, res){ 
    var options = { 
     url: url, 
     method: 'POST', 
     json: true 
    } 

    request-promise(options).then(function(body){ 
     console.log('All good!'); 
    }).catch(function(err) { 
     if(err) { 
     console.log(err); 
     res.json(err);  
     } 
    }); 
} 

jQueryのコード

$.ajax({ 
    type: 'POST', 
    url: 'http://localhost:3000/endpoint', 
    contentType: 'application/json', 
    data: JSON.stringify(data), 
    success: function(data) { 
     console.log(data); 
    }, 
    error: function (err) { 
     console.log(err); 
    } 
}); 
+0

からそれが私がres.json' 'にその原因だと思うの端末コンソールにログインして、ではなく、ブラウザのコンソール –

+0

ます。私は代わりに 'res.send(err)'を使う必要があると思います。これは –

答えて

1

あなただけの応答にエラーステータスを追加する必要があります。特急応答API Express 4.x

res.status(500).json({ error: 'message' }); 
+0

で動作しているようですが、私は 'res.json'のためだと思います。 'res.send(err)'を使用する必要があると思います。 –

+0

@phantom 'res.send(err)'を使用すると、フロントエンドJSは 'success'コールバックでそれを受け取りますが、' error'コールバック私は – MysterX

+0

ああ、私の成功の方法でエラーを処理しているようにあなたは正しいかもしれないと思う –

関連する問題