1

AWS Api Gatewayにアクセスするのと同じ厳密なコード(node app.js)が正しく実行される有線の問題が発生していますが、307ノード/ Expressアプリケーション内から送信されたときにリダイレクトします。ここでノードWebアプリケーションからAWS Api Gatewayに正しくアクセスする方法

は、「スタンドアローン」単一のファイルノードプログラム(app.js)です:

var http = require("https"); 

var options = { 
     "method": "POST", 
     "hostname": "ipzjnsvxnd.execute-api.us-west-2.amazonaws.com", 
      "port": null, 
      "path": "/DEV/execution", 
       "headers": { 
         "cache-control": "no-cache", 
          "postman-token": "b929e970-fe22-0f4f-e659-117890fda955" 
           } 
}; 

var req = http.request(options, function (res) { 
     var chunks = []; 

     res.on("data", function (chunk) { 
       chunks.push(chunk); 
        }); 

      res.on("end", function() { 
        var body = Buffer.concat(chunks); 
         console.log(body.toString()); 
         }); 
}); 

req.write("{\n \"input\": \"{ \\\"account_key\\\": \\\"9990\\\", \\\"acc1\\\": \\\"1235813\\\", \\\"acc2\\\": \\\"13711\\\",\\\"amount\\\": \\\"1000.00\\\", \\\"city\\\": \\\"BrandonTown\\\" }\",\n \"name\": \"RequiredUniqueValueGoesHere19090\",\n \"stateMachineArn\": \"arn:aws:states:us-west-2:217465658899:stateMachine:FICO_StateMachine3\"\n}"); 
req.end(); 

そしてここで同じコードは、ノード/ ExpressのWebアプリケーションの一部として、次のとおりです。

module.exports = function(app) { 

    var querystring = require('querystring'); 
    var http = require('http'); 
    http.post = require('http-post'); 

    app.get('*', function(req, res) { 
     res.sendfile('./public/index.html'); 
    }); 

    app.post("/customerinfo", function(req, res) { 

     var options = { 
      "method": "POST", 
      "hostname": "ipzjnsvxnd.execute-api.us-west-2.amazonaws.com", 
      "path": "/DEV/execution", 
      "headers": { 
       "cache-control": "no-cache", 
       "postman-token": "b929e970-fe22-0f4f-e659-117890fda955" 
      } 
     }; 

      var req1 = http.request(options, function (res1) { 
      var chunks = []; 

      res1.on("data", function (chunk) { 
       chunks.push(chunk); 
      }); 

      res1.on("end", function() { 
       var body = Buffer.concat(chunks); 
       console.log(body.toString()); 
      }); 
     }); 

     req1.write("{\n \"input\": \"{ \\\"account_key\\\": \\\"9990\\\", \\\"acc1\\\": \\\"1235813\\\", \\\"acc2\\\": \\\"13711\\\",\\\"amount\\\": \\\"1000.00\\\", \\\"city\\\": \\\"BrandonTown\\\" }\",\n \"name\": \"RequiredUniqueValueGoesHere1239091\",\n \"stateMachineArn\": \"arn:aws:states:us-west-2:217465658899:stateMachine:FICO_StateMachine3\"\n}"); 
     req1.end(); 
    }); 

}; 

提出したときに最初のものは正常に動作します:あなたは旧姓

<html> 
<head><title>307 Temporary Redirect</title></head> 
<body bgcolor="white"> 
<center><h1>307 Temporary Redirect</h1></center> 
<hr><center>CloudFront</center> 
</body> 
</html> 

<html> 
<head><title>307 Temporary Redirect</title></head> 
<body bgcolor="white"> 
<center><h1>307 Temporary Redirect</h1></center> 
<hr><center>CloudFront</center> 
</body> 
</html> 

<html> 
<head><title>307 Temporary Redirect</title></head> 
+1

あなたは、コードを変更する必要があり、 'HTTP =必要(「HTTP」)'エクスプレスアプリ内で 'http = require( 'https')'に変更してください。 –

+0

これはうまくいきました - ありがとうございます。これを解決策として投稿すれば、私は受け入れることができます。 –

+0

うれしかったです。私の答えを加えました! –

答えて

0

:ノードは 二番目のリターンをapp.jsコードをhttp = require('http')からhttp = require('https')に変更してください。

また

は、requestを見て、それがHTTPSをサポートしてHTTPクライアントであり、また、内蔵の他の機能の多くを持っている。

関連する問題