node.js - 如何启动 Nestjs 应用程序
问题描述
我开始开发一个 NestJS 应用程序,以前的开发人员没有留下任何文档或评论,而且我通常是 NestJS 和 Node 的新手。
我很难在本地运行应用程序,该应用程序是使用以下技术开发的:NestJS、GraphQL、apollo-server-express、Prisma。
首先,我提取了 repo 文件并运行以下命令(npm install
、npm run build
、npm 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。先感谢您。
解决方案
试试这种方式,用这个替换你的启动命令:
"start": "nest start --watch
,
推荐阅读
- codeigniter - 您没有选择要上传的文件在 codeigniter 中出错
- reactjs - React - 使用外部配置填充 UserManagerSettings
- javascript - 如何使用 Sequalize 保存 n:m 关联?
- lxml - openpyxl 无法处理写入 lxml.etree._ElementUnicodeResult
- python - 如何在 Tensorflow 2.0 中做 Cohen Kappa 二次损失?
- php - 类 DateInterval 的对象无法在 php 中转换为字符串
- kubernetes - 使用 BitBucket 将 nodejs 应用程序导出到 Kubernetes
- c++ - 了解 OpenGL 中的绑定?
- .htaccess - 防止盗链在我的网站上不起作用吗?
- angular - 如何在角度的 *ngFor 列表的每个项目中切换特定元素的类?