2017-05-21 5 views
0

私はnode.jsを使い慣れていません。郵便局員から、私のノードサーバーへのポストコールを行っています。これはさらにリモートサーバーを呼び出します。私はこの呼び出しを作ってるんだたびに、私はノードサーバー上のデータを取得するが、私が作る方法を知らないNode.jsとaxios:非同期要求後に応答を別のサーバーに返す方法

exports.fetchFromRemoteServer = function(req, res, next){ 
    const query = req.query; 

    axios({ 
     method: 'post', 
     url: 'http://www.someUrl.com', 
     params: query 
     }).then(function(response){ 
     console.log(response); 
     res.send('data', response); 
     }).catch(err => console.log(err)); 
} 

:私は電話をかけるためにaxiosを使用している、APIはこのような何かを返すですその非同期ので、いつでもそれはres.sendのAPI呼び出しの.thenの呼び出しを開始します。郵便配達員は私にローディング状態を表示し続けます。

+1

。おそらく要求が失敗し、catchブロックに入り、応答を返さないためです。 catchブロックで400の応答を送信してみてください。 –

答えて

0

私はasyncモジュールを使用して、これに対する解決策を発見し、解決策は次のように見えた:「郵便配達は私に積載状態を示すキープ。」

exports.fetchFromRemoteServer = function(req, res, next){ 
    const query = req.query; 

async.parallel([ 
function(callback){ 
    axios({ 
     method: 'post', 
     url: 'http://www.someUrl.com', 
     params: query 
    }).then(function(response){ 
     callback(false, response); 
    }); 
}],function(error, result){ 
    res.json(result[0].data.results); 
}); 
} 
+0

parrallelで2つの関数を実行するのは正しいですか?彼のコードでは、滝やシリーズで何かが必要だったと思います。最初の関数の結果は2番目の関数にとって重要です。 – franckstifler

関連する問題