【发布时间】:2021-10-26 14:34:47
【问题描述】:
我正在使用 Lambda 代理应用程序,该应用程序在部署到 AWS 后会在请求后引发 cors 错误。
CORS 在 NEST.js 应用程序端启用
async function bootstrap(): Promise<Handler> {
if (!cachedServer) {
const expressApp = express();
const nestApp = await NestFactory.create(AppModule, new ExpressAdapter(expressApp));
const validationOptions = {
validationError: { target: false },
};
nestApp.useGlobalPipes(new ValidationPipe(validationOptions));
const logger: Logger = new Logger(new PinoLogger(null));
nestApp.useLogger(logger);
nestApp.enableCors();
nestApp.use(helmet());
nestApp.useGlobalFilters(new ServiceExceptionFilter());
await nestApp.init();
cachedServer = serverlessExpress({ app: expressApp });
}
return cachedServer;
}
export const handler = async (event: any, context: Context, callback: any) => {
if (event.path === '/swagger') {
event.path = '/swagger/';
}
event.path = event.path.includes('swagger-ui') ? `/swagger${event.path}` : event.path;
const server = await bootstrap();
return server(event, context, callback);
};
这里是 serverless.yml 配置部分
functions:
main:
handler: src/lambda.handler
events:
- http:
method: ANY
path: /{any+}
cors: true
有人可以解释这里有什么问题吗?为什么我从部署的 AWS 应用程序中收到 cors 错误?我正在使用 root 用户来运行该应用程序。它在本地工作正常。顺便说一句,如果它可以帮助我拥有运行良好但 POST 和 PATCH 不起作用的健康端点 (GET)。
【问题讨论】:
标签: node.js amazon-web-services aws-lambda cors nestjs