NestJS 用于 JavaScript (Node.js):完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程
\n

什么是 NestJS,为什么需要它?

\n

NestJS 是一个用于在 Node.js 上构建高效、可靠且可扩展的服务器端应用程序的渐进式框架。它采用了受 Angular 启发的富有表现力的架构,默认基于 TypeScript 构建,但完全支持纯 JavaScript。NestJS 抽象了诸如 Express(默认)或 Fastify 等流行库的底层细节,为开发者提供了一套强大的代码组织工具:模块、控制器、服务、提供者、中间件、守卫、拦截器、管道和过滤器。

\n

为什么需要 NestJS?在现代 Node.js 网络开发中,代码组织常常成为问题:简单的 Express 脚本随着功能增长很快就会变成“意大利面条式代码”。NestJS 通过强制采用清晰的模块化结构和依赖注入(Dependency Injection)原则解决了这个问题。这使得应用程序的测试、维护和扩展变得更加容易。该框架非常适合构建 REST API、GraphQL 服务器、微服务以及实时应用程序(WebSockets)。

\n

NestJS 的关键优势在于其生态系统。它提供了用于数据库操作(TypeORM、Mongoose、Prisma)、身份验证(Passport)、验证(class-validator)、配置、队列(Bull)、缓存等众多功能的官方模块。得益于此,开发者可以专注于业务逻辑,而不是集成各种不同的库。

\n\n

安装

\n

安装 NestJS 需要使用包管理器 npm(或 yarn)。建议全局安装 CLI 工具以便快速创建项目:

\n
npm install -g @nestjs/cli
\n

安装 CLI 后,您可以使用以下命令创建一个新项目:

\n
nest new my-nest-project
\n

在安装过程中,系统会提示您选择包管理器(npm、yarn 或 pnpm)和语言(推荐 TypeScript,或 JavaScript)。如果您想将 NestJS 添加到现有项目中,请安装核心包:

\n
npm install @nestjs/core @nestjs/common @nestjs/platform-express reflect-metadata rxjs
\n

请注意:reflect-metadata 库是装饰器正常工作所必需的。

\n\n

快速入门:最小工作示例

\n

让我们创建一个最简单的 REST API,其中包含一个返回 "Hello World" 的端点。

\n

步骤 1:创建文件 app.controller.js

\n
// app.controller.js\nconst { Controller, Get } = require('@nestjs/common');\n\n@Controller()\nexport class AppController {\n    @Get()\n    getHello() {\n        return 'Hello World!';\n    }\n}
\n

步骤 2:创建文件 app.module.js

\n
// app.module.js\nconst { Module } = require('@nestjs/common');\nconst { AppController } = require('./app.controller');\n\n@Module({\n    controllers: [AppController],\n})\nexport class AppModule {}
\n

步骤 3:创建主文件 main.js

\n
// main.js\nconst { NestFactory } = require('@nestjs/core');\nconst { AppModule } = require('./app.module');\n\nasync function bootstrap() {\n    const app = await NestFactory.create(AppModule);\n    await app.listen(3000);\n    console.log('服务器已启动,地址为 http://localhost:3000');\n}\nbootstrap();
\n

步骤 4:运行应用程序

\n
node main.js
\n

现在,请访问 http://localhost:3000——您将看到 "Hello World!"。

\n\n

主要方法、类和装饰器

\n

以下是 8 个关键元素

推荐