首页 > 解决方案 > 将带有 graphql prisma 的 Nestjs 转换为无服务器,启动时出错

问题描述

我在将 Nestjs 转换为无服务器时遇到了一些麻烦。我的技术栈是 Nestjs、Graphql 和 Prisma。我遵循了多个指南购买无济于事,以下是我遵循的教程。 https://nishabe.medium.com/nestjs-serverless-lambda-aws-in-shortest-steps-e914300faed5 https://github.com/lnmunhoz/nestjs-graphql-serverless

我面临的错误。当我开始导航到它时会发生这种情况。例如,http://localhost:3000/dev/graphql,我想访问操场

在此处输入图像描述

问题表明 serverless 文件丢失,但它在 src 下

这是我在 src 文件夹中的 serverless.ts 文件

import { NestFactory } from '@nestjs/core';
import { ExpressAdapter } from '@nestjs/platform-express';
import { Context, Handler } from 'aws-lambda';
import serverless from 'aws-serverless-express';
import express from 'express';
import { Server } from 'http';
import { AppModule } from './app.module';

export async function bootstrap() {
  const expressApp = express();
  const adapter = new ExpressAdapter(expressApp);
  const app = await NestFactory.create(AppModule, adapter);

  await app.init();
  return serverless.createServer(expressApp);
}

let cachedServer: Server;

export const handler: Handler = async (event: any, context: Context) => {
  if (!cachedServer) {
    const server = await bootstrap();
    cachedServer = server;
    return serverless.proxy(server, event, context);
  } else {
    return serverless.proxy(cachedServer, event, context);
  }
};

这是我的 serverless.yml 文件

service: laundry-api

provider:
  name: aws
  runtime: nodejs12.x
  region: ap-southeast-1
  stage: dev
  profile: default # Config your AWS Profile

plugins:
  - serverless-offline

functions:
  index:
    handler: src/serverless.handler
    environment:
      SLS_DEBUG: true
    events:
      - http:
          path: graphql
          method: any
          cors: true

我一直在思考问题出在哪里几个小时,也尝试过 webpack。如果你们能指出我正确的方向,那就太好了谢谢。

标签: graphqlnestjsserverlessprismaserverless-offline

解决方案


推荐阅读