首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:@prisma/client尚未初始化。请运行"prisma生成“

错误:@prisma/client尚未初始化。请运行"prisma生成“
EN

Stack Overflow用户
提问于 2022-04-05 19:13:35
回答 1查看 2.2K关注 0票数 1

我的nodeJS后端有问题.我想要创建一个对接撰写环境,但当我试图启动我的Prisma NodeJS应用程序时,我一直收到这个错误。我已经尝试了很多东西,但在谷歌上找不到任何有用的解决方案。该应用程序不需要停靠器即可工作。

码头工人撰写文件:

代码语言:javascript
运行
复制
  endbit-express:
    container_name: endbit-express
    build: ./endbit-express
    volumes:
      - ./endbit-express:/app
      - /app/node_modules
    ports:
      - 8080:8080
    depends_on:
      - mysql
    environment:
      - DATABASE_URL=mysql://root:root@localhost:3306/endbit
    networks:
      - endbit

  mysql:
    container_name: endbit-mysql
    image: mysql:8.0.28
    restart: always
    ports:
      - 6033:3306
    environment:
      - MYSQL_DATABASE=endbit
      - MYSQL_ROOT_PASSWORD=root
    volumes:
      - dbdata:/var/lib/mysql
    networks:
      - endbit

码头档案:

代码语言:javascript
运行
复制
FROM node:17.4.0

WORKDIR /app

COPY package*.json ./
COPY prisma ./prisma

RUN npm install

COPY . .

RUN prisma generate

EXPOSE 8080

CMD ["npm", "start"]

错误:

代码语言:javascript
运行
复制
endbit-express  | > express@0.0.0 start
endbit-express  | > node ./bin/www
endbit-express  |
endbit-express  | /app/node_modules/.prisma/client/index.js:3
endbit-express  |     throw new Error(
endbit-express  |     ^
endbit-express  |
endbit-express  | Error: @prisma/client did not initialize yet. Please run "prisma generate" and try to import it again.
endbit-express  | In case this error is unexpected for you, please report it in https://github.com/prisma/prisma/issues
endbit-express  |     at new PrismaClient (/app/node_modules/.prisma/client/index.js:3:11)
endbit-express  |     at Object.<anonymous> (/app/config/passport.js:7:16)
endbit-express  |     at Module._compile (node:internal/modules/cjs/loader:1097:14)
endbit-express  |     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
endbit-express  |     at Module.load (node:internal/modules/cjs/loader:975:32)
endbit-express  |     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
endbit-express  |     at Module.require (node:internal/modules/cjs/loader:999:19)
endbit-express  |     at require (node:internal/modules/cjs/helpers:102:18)
endbit-express  |     at Object.<anonymous> (/app/app.js:7:1)
endbit-express  |     at Module._compile (node:internal/modules/cjs/loader:1097:14)
endbit-express  |
endbit-express  | Node.js v17.4.0
EN

Stack Overflow用户

回答已采纳

发布于 2022-09-09 06:41:24

最终,我自己找到了答案,因为我使用的是一个坞文件停靠器,它不识别localhost:3306 URL。在对接组合中,您需要将容器按名称链接。因此,我用以下(host = docker服务名称)更改了后端组件环境:

代码语言:javascript
运行
复制
environment:
  - DB_HOST=mysql
  - DB_USER=root
  - DB_PASSWORD=root
  - DB_NAME=endbit-express
  - DB_PORT=3306
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71757236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档