-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
30 lines (27 loc) · 1.16 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const http = require('http');
const url = require('url');
const querystring = require('querystring');
const { handler } = require('./index');
// Create a server
http.createServer((request, response) => {
const parsedUrl = url.parse(request.url);
// Make an event in the Lambda Proxy Event format
// http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html#api-gateway-simple-proxy-for-lambda-input-format
const event = {
pathParameters: {
proxy: parsedUrl.pathname.slice(1),
},
queryStringParameters: querystring.parse(parsedUrl.query),
};
console.log(event);
handler(event, null, (error, responseDef) => {
// Read Lambda output format and send back a response
// http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html#api-gateway-simple-proxy-for-lambda-output-format
response.writeHead(responseDef.statusCode, responseDef.headers);
const decodedBody = responseDef.isBase64Encoded
? Buffer.from(responseDef.body, 'base64')
: responseDef.body;
response.write(decodedBody);
response.end();
});
}).listen(process.env.PORT || 8081);