首页 > 解决方案 > 如何启动 Nestjs 应用程序

问题描述

我开始开发一个 NestJS 应用程序,以前的开发人员没有留下任何文档或评论,而且我通常是 NestJS 和 Node 的新手。

我很难在本地运行应用程序,该应用程序是使用以下技术开发的:NestJS、GraphQL、apollo-server-express、Prisma。

首先,我提取了 repo 文件并运行以下命令(npm installnpm run buildnpm run start),我得到以下错误日志:

在此处输入图像描述

这是我的 npm 脚本:

    "build": "cross-env NODE_ENV=production webpack --progress --config webpack.config.prod.js",
    "start:hmr": "node ./dist/server.js",
    "start": "ts-node -r tsconfig-paths/register src/main.ts",

我尝试将启动脚本更改为

"start": "npm i -g @prisma/cli @nestjs/cli && prisma generate && node dist/main"

仍然没有工作

main.ts

import 'source-map-support/register';
import { Env } from '@shared/utils';
import { AppModule } from '@app/app.module';
import { NestFactory } from '@nestjs/core';
import { ExpressAdapter, NestExpressApplication } from '@nestjs/platform-express';
import { HttpExceptionFilter } from '@shared/filters/http-exception.filter';
import { LoggerService } from '@shared/services';
import './seed';

const LOGGER = new LoggerService('Main');
const PORT: number = Env('PORT', 3000);
async function bootstrap() {
  const app = await NestFactory.create<NestExpressApplication>(AppModule, new ExpressAdapter(), {
    logger: LOGGER,
  });
  await app.useGlobalFilters(new HttpExceptionFilter()).listenAsync(PORT);
  return PORT;
}

bootstrap()
  .then(port => LOGGER.log(`  Server ready at ${port}, started in ${process.uptime()}s`))
  .catch(e => LOGGER.error(e.message, e));

注意:我已经全局安装了 Nest cli 和 npm。先感谢您。

标签: node.jsnestjsnpm-scriptsprismanpm-start

解决方案


试试这种方式,用这个替换你的启动命令:

"start": "nest start --watch,


推荐阅读