2017-06-12 7 views
1

私は体内のファイルの内容を返す第三者API Restを使用しています。このファイルはテキストまたはバイナリ(pdf、docx)です。返信の本文を正確に返信する

セキュリティ上の理由から、中間APIを使用する必要があります。フロントエンドアプリケーションとこのサードパーティAPIレストとの間のブリッジとして休憩します。

私が望むのは、第三者からフロントエンドアプリケーションに渡すのと同じボディを返すことです。私がボディを取得して中間APIで新しい応答を作成すると、何とか何かを修正する。

これは私が私の中間のAPIで何をすべきかです:

const options = { 
    method: 'GET', 
    uri: `${api}`, 
    headers: { OTCSTICKET: ticket} 
} 

rp(options) 
    .then(parsedBody => res.status(201).send(parsedBody)) 
    .catch(err => res.status(400).send({ msg: 'download error', err })); 

私は私が応答に入ると全く同じボディを送信する必要があります。どうやってやるの? [OK]を

おかげ

+0

コードを書式設定すると、欠落している終了\\が指摘されています。コードにも欠落していないかどうかを確認してください。 – Aaron

+0

は問題で修正されました。元のコードはいいです、ありがとう。 – David

+0

[要求を使用してNode.jsのバイナリコンテンツを取得する]の可能な複製(https://stackoverflow.com/questions/14855015/getting-binary-content-in-node-js-using-request) – GilZ

答えて

0

私はこの作業を取得するために管理し、それが誰かを助け場合、私はここに投稿します。

このスレッドは私に Getting binary content in Node.js using request

だから私はnullにエンコーディングを設定するソリューションを与えたと私は体として、私は私が管理これにより、サードパーティのAPI

const options = { 
    method: 'GET', 
    uri: `${api}`, 
    headers: { OTCSTICKET: ticket}, 
    encoding: null, 
    resolveWithFullResponse: true 
} 

rp(options) 
    .then(response => res.status(201).send(response.body)) 
    .catch(err => res.status(400).send({ msg: 'download error', err })); 

からもらったものを合格しましたこれを稼働させる。

関連する問題