2017-07-18 14 views
0

ノードアプリケーションのルートフォルダに、fetchCity.jsやaddNewDevice.jsのような2つのファイルがあります。 addNewDevice.jsのリクエストパラメータをfetchCity.jsに転送し、addNewDevice.jsファイルのレスポンスを処理したいとします。私は次のコードを試したが動作していない。NodeJSの転送要求

app.post('/fetchCityArea',function(req,res){ 
        console.log('Response from fetchCityArea is ' + JSON.stringify(res)); 
      }); 

使用:代わりの

var express = require('express'); 

    module.exports = function(app){ 
     var cors = require('cors'); 
     var coptions = { 
      "origin": "*", 
      "methods": "GET,HEAD,PUT,POST,OPTIONS", 
      "preflightContinue": false, 
      "allowedHeaders":['Content-Type'] 
     } 
     var db = require('./dbclient'); 
     var bodyParser = require('body-parser'); 
     app.use(cors(coptions)); 
     app.use(bodyParser.json()); 
     app.use(bodyParser.urlencoded({extended:true})); 
     app.post('/newBinDevice', function(req, res, next) { 

      var did = req.body.deviceid; 
      var sver = req.body.swver; 
      var city = req.body.city; 
      var circle = req.body.circle; 
      app.post('/fetchCityArea',function(req,res){ 
        console.log('Response from fetchCityArea is ' + JSON.stringify(res)); 
      }); 
     }); 
    } 

答えて

0

node.jsコードでhttpモジュールを使用し、以下の疑似コードでリクエストを送信することで問題を解決しました。

var http = require('http'); 

app.post('/abc',function(req,res) { 
     http.get(url,function(resp){ 
       resp.on('data',function(buf){//process buf here which is nothing but small chunk of response data}); 
       resp.on('end',function(){//when receiving of data completes}); 
     });  
}); 
0

res.redirect('/fetchCityArea'); 

理由:app.post( '/ someRoute')は、HTTPリスナー・モジュールではないhttpリクエストモジュールです。 res.redirectはペイロードを渡されたルートにリダイレクトするレスポンスオブジェクトの関数です。

+0

私はそれがユーザーをリダイレクトし、応答がユーザーに送信されると思います。ユーザーはいつでも/ fetchCityAreaにリクエストを送信できます。しかし、彼らが/ addNewDeviceにリクエストを送るとき、私は/ fetchCityAreaの応答が/ addNewDeviceで処理される必要があります。もし私が間違っていたら、私を訂正してくださいリダイレクトメソッドをサーバーコードで使用した後にレスポンスオブジェクトを取得する方法が見つかりませんでした。 –

+0

はい、あなたは正しいです。 app.postハンドラ自体でもリクエストの処理を行っていますか? –

+0

はい、/ addNewDeviceから/ fetchCityAreaへリクエストを送信したいと思います。レスポンスを受け取ったら、それをさらに/ addNewDeviceで処理したいと思います。予想される動作は、JavaのRequestDispatcher.forwardメソッドに似ています。 –

関連する問題