2016-03-20 15 views
1

したがって、私はKoa/Node JSの単純なバックエンドを用意しています。これは外部APIに対してGET要求を行うためだけに設計されていますレスポンスボディをReact JSクライアントアプリケーションに追加しました。私はKoaやNode JSやサーバーに慣れていないので、実際にどのようにするか分かりません。このようなNode.JSサーバーアプリケーション内からGETリクエストを作成し、React.JSクライアントに送信

何か:

var koa = require('koa'); 
var app = koa(); 

app.use(function *(){ 
    http.get({host: somehost, path: somepath}, 
     function(response) { 
      this.body = Here send to React Client 
     } 
    ) 
}); 

app.listen(3000); 

編集:ExpressJSを使用して回答も大歓迎です。

+1

[リクエスト](https://www.npmjs.com/package/request)または[リクエスト - 約束](https://www.npmjs.com/package/request-promise)はあなたに喜びをもたらします。 – Wainage

答えて

1

クライアントへのリモートサービスからのレスポンスを変更しない場合は、レスポンスをクライアントに直接パイプすることができます。

'use strict' 
const express = require('express'); 
const http = require('http'); 
const app = express(); 

app.use("/test", (clientRequest, clientResponse) => { 
    http.get('http://some-remote-service.com', (remoteResponse) => { 
    // include content type from remote service in response to client 
    clientResponse.set('Content-Type', remoteResponse.headers['content-type']); 

    // pipe response body from remote service to client 
    remoteResponse.pipe(clientResponse); 
    }); 
}); 

app.listen(3000,() => console.log('server started')); 

このシナリオでは、配管の利点の1つは、クライアントであるクライアントに応答する前に、リモートサービスから完全な応答を受信するためにNode.jsのサーバーを待つ必要はありません - クライアントが受信を開始しますリモートサービスがリモートサービス応答本体を送信し始めるとすぐに、それを返します。

関連する問題