NestJs服务搭建步骤记录(一):项目创建、Mongoose、swagger使用示例

作者:有好多问题2024.01.18 03:26浏览量:7

简介:本文将介绍如何使用NestJs创建项目,以及如何使用Mongoose和Swagger进行数据库操作和接口文档生成。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

在开始之前,确保你已经安装了Node.js和npm。接下来,我们将按照以下步骤搭建一个NestJs服务:
步骤一:创建项目
首先,通过Nest CLI创建一个新的NestJs项目。打开终端,并执行以下命令:

  1. npmi -g @nestjs/cli
  2. nest new project-name
  3. cd project-name
  4. yarn run start:dev

这将创建一个新的NestJs项目,并在本地的3000端口启动它。
步骤二:添加Mongoose支持
在NestJs中,我们可以使用Mongoose来连接和操作MongoDB数据库。首先,安装必要的依赖包:

  1. yarn add @nestjs/mongoose mongoose

接下来,在项目中创建一个database文件夹,并在其中创建一个providers.ts文件。在该文件中,我们将使用工厂模式将数据库连接池注入到项目中:

  1. import * as mongoose from 'mongoose';
  2. export const databaseProviders = [
  3. { provide: 'DbConnectionToken', useFactory: () => mongoose.createConnection('mongodb://localhost/test') }
  4. ];

步骤三:初始化Swagger
Swagger是一个强大的API文档生成工具,可以方便地生成RESTful API的文档。首先,安装必要的依赖包:

  1. yarn add @nestjs/swagger swagger-ui-express-S

安装完依赖包后,只需要在main.ts中引入并设置一些基本信息即可:

  1. import { NestFactory } from '@nestjs/core';
  2. import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
  3. import { AppModule } from './app.module';
  4. const listenPort = 3000;
  5. async function bootstrap() {
  6. const app = await NestFactory.create(AppModule);
  7. const builder = new DocumentBuilder();
  8. builder.setTitle('NestJS API');
  9. builder.setDescription('This is a sample NestJS API');
  10. builder.setVersion('1.0');
  11. builder.setBasePath('/');
  12. builder.addTag('User', 'UserController'); // 添加标签分类接口,方便查找和测试接口。
  13. builder.addTag('Admin', 'AdminController'); // 添加标签分类接口,方便查找和测试接口。
  14. const document = builder.getDocument(); // 获取生成的Swagger文档对象。
  15. app.use(new SwaggerModule({ document, listenPort })); // 将Swagger模块挂载到应用上。
  16. await app.listen(listenPort); // 启动应用并监听端口。
  17. }
  18. bootstrap(); // 执行引导程序。

现在,我们可以通过访问localhost:3000/api-doc来查看生成的API文档。默认情况下,所有的接口都在Default栏目下。如果需要分类查看接口,可以使用@ApiTags装饰器来给接口添加标签:@ApiTags(‘User’)装饰在UserController上即可将所有接口分类到User栏目下。

article bottom image

相关文章推荐

发表评论