请原谅我的愚蠢,我是这个概念和 stackoverflow 社区的新手。我一直在关注 freeCodeCamp 的 NestJs 初学者课程的教程。 https://www.youtube.com/watch?v=GHTA143_b-s&t=21s 而且我一直在尝试使用Serverless框架来部署。每当我向端点请求时,我都会收到以下错误 导入模块错误:Prisma 找不到模块“./prisma/client/index”。
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
我的 prisma 代码是:https://github.com/Jaethem8y/research-nestjs/tree/main/prisma
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { PrismaClient } from '@prisma/client';
@Injectable()
export class PrismaService extends PrismaClient {
constructor(config: ConfigService) {
super({
datasources: {
db: {
url: config.get('DATABASE_URL'),
},
},
});
}
}
Prisma 服务代码是:https://github.com/Jaethem8y/research-nestjs/tree/main/src/prisma
和 serverless.yml :https://github.com/Jaethem8y/research-nestjs/blob/main/serverless.yml
service: research-serverless
frameworkVersion: '3'
plugins:
- serverless-jetpack
provider:
name: aws
runtime: nodejs16.x
region: us-east-2
functions:
api:
handler: dist/lambda.handler
events:
- http:
method: any
path: /{proxy+}
我运行 npm build 然后运行 sls deploy。我不知道当前的问题是什么,并且由于缺乏我的技能而未能在谷歌中找到答案。请帮我找到解决方案。谢谢您的宝贵时间。
我曾尝试用谷歌搜索类似的问题,但找不到。看起来该应用程序的 typeorm 版本运行良好。我想知道什么可能导致这个问题。
首先,您应该在发布链接之前验证您的存储库是否实际上是公开的。我认为您的存储库已设置为私有。
其次,您所描述的错误来自于prisma客户端不存在。请确保在 prisma.schema 中声明模型后使用
prisma generate
命令实际生成客户端。您还应该验证是否在容器映像中生成客户端(如果适用)。
修改您的 Nest-cli.json 文件以将生成的文件夹包含为资产。
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"deleteOutDir": true,
"assets": [
{
"include": "../prisma/generated",
"outDir": "dist/prisma",
"watchAssets": true
}
],
"watchAssets": true
}
}
前几天我也遇到了同样的问题, 但就我而言,我使用 Vercel 作为部署平台
Serverless平台无法识别绝对导入; 相反,我必须选择相对导入,修改导入方法后, 它有效。