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>
あなたは、コードを変更する必要があり、 'HTTP =必要(「HTTP」)'エクスプレスアプリ内で 'http = require( 'https')'に変更してください。 –
これはうまくいきました - ありがとうございます。これを解決策として投稿すれば、私は受け入れることができます。 –
うれしかったです。私の答えを加えました! –