У меня есть AWS Lambda, созданная для запуска экспресс-приложения. У экспресс-приложения есть один маршрут, который поддерживает запрос get
и возвращает простую HTML-страницу. Я запускаю это с awsServerlessExpress
, но вместо того, чтобы возвращать только HTML, возвращается JSON.
Вот что возвращается:
{"statusCode":200,"body":"\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n
Testing!
\r\n
\r\n
This is a test
\r\n
\r\n\r\n\r\n","headers":{"x-powered-by":"Express","accept-ranges":"bytes","cache-control":"public, max-age=0","last-modified":"Sun, 28 Oct 2018 23:48:18 GMT","etag":"W/\"b3-166bd1405d0\"","content-type":"text/html; charset=UTF-8","content-length":"179","date":"Mon, 29 Oct 2018 03:57:27 GMT","connection":"close"},"isBase64Encoded":false}
Как мне заставить его просто вернуть HTML?
Вот мой app.js
const express = require('express');
const app = express();
const router = express.Router();
app.use(express.static(__dirname + "/client"));
app.get('/', function(req, res) {
res.set('Content-Type', 'text/html');
res.sendFile(__dirname + '/client/index.html');
});
app.use('/', router);
module.exports = app;
Вот мой index.js
'use strict'
const binaryMimeTypes = [
'application/javascript',
'application/json',
'application/octet-stream',
'application/xml',
'font/eot',
'font/opentype',
'font/otf',
'image/jpeg',
'image/png',
'image/svg+xml',
'text/comma-separated-values',
'text/css',
'text/html',
'text/javascript',
'text/plain',
'text/text',
'text/xml',
'multipart/form-data'
]
const awsServerlessExpress = require('aws-serverless-express')
const app = require('./app')
const server = awsServerlessExpress.createServer(app)
exports.handler = (event, context) => { awsServerlessExpress.proxy(server, event, context) }
В AWS я создал новую лямбду с API-шлюзом в качестве триггера. Вот как выглядит мой API-шлюз: