下面是我的输入表单,我想将 2 个输入的数字作为 POST 发送到 AWS Lambda 并希望添加它们,并且我希望添加数字的响应显示在客户端的浏览器上。请注意,我们使用的是 AWS CodeStar,因此 Lambda 部分不会被我们干扰。
为此,我编写了一段代码:
应用程序.js
var express = require('express');
var app = express();
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended:true}));
app.get("/", function(req, res) {
res.sendFile(__dirname+ "/index.html");
});
app.post("/", function(req, res) {
var a = Number(req.body.num1);
var b = Number(req.body.num2);
var c = a+b;
res.send("The sum is" + c);
});
// Export your Express configuration so that it can be consumed by the Lambda handler
module.exports = app
我们得到的错误是:{"message":"Forbidden"}
索引.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Calculator</title>
</head>
<body>
<form action="/" method="post">
<input type="text" name="num1" placeholder="Enter No. 1">
<input type="text" name="num2" placeholder="Enter No. 2">
<button type="submit" name="submit">CALCULATE</button>
</form>
</body>
</html>
index.js
'use strict';
const awsServerlessExpress = require('aws-serverless-express')
const app = require('./app')
const server = awsServerlessExpress.createServer(app)
exports.handler = (event, context) => awsServerlessExpress.proxy(server, event, context);