2017-06-05 18 views
0

私の目標は、http://localhost:3000/testを私のブラウザに入れて、http://my_virtual_machine:8080/rest/stuff/testからの回答を得ることです。express経由で別のAPIを呼び出す方法は?

私はExpress、mongooseをセットアップするためにthis tutorialに従っています(最終バージョンはMongoに接続せず、VMのエンドポイントのみに接続します)。私はto-doリストAPIを作成し、期待通りに動作します。

ただし、このAPIを使用してVMを呼び出す方法を理解できません。

私は「External API Calls With Express, Node.JS and Require Module」を読み、server.jsに以下の追加を思い付いた:

router = express.Router(), 
request = require('request'); 

router.get("/test", function(req,res,next){ 
    request({ 
     uri: 'http://my_virtual_machine:8080/rest/stuff/test/', 
    }).pipe(res) 
}) 

しかし、私は私のブラウザにhttp://localhost:3000/testを入れたときに、私は、コンソールに404エラーが発生します。

はここにすべての私のコードのPLUNKです。 server.jsには、これを動作させるために行った変更が含まれています。

私はExpress noobですので、なぜこれが機能しないのか分かりません。

+0

get機能を変更する必要がありますが、あなたのVMのカールをしてみてくださいましたか? –

+0

@Dineshブラウザから 'http:// my_virtual_machine:8080/rest/stuff/test'に行った場合、あなたが求めているのであれば、私は期待した結果を得ます。 –

答えて

2

エクスプレスアプリインスタンスにルータを追加する必要があります。これは

app.use('/test', router); 

を使用して行うことができ、上記の行は、ルータのインスタンスに/testにルーティングするすべての要求をexpressに指示します。

そして、あなたはすでにパスを指定するので、ルーターの内側に、あなたは

router.get('/', function(req, res, next) { 
    request({ 
     uri: 'http://my_virtual_machine:8080/rest/stuff/test/', 
    }).pipe(res) 
}); 
関連する問題