文章目录

  • 服务
  • 1. 用命令创建service
  • 2. 写一些基本的代码
  • 一、模块应用
  • 二、创建模块
  • 三、功能模块基本使用
  • 四、全局模块
  • 1.创建模块share
  • 2. 在service中创建个方法
  • 3. 在module中注册为全局
  • 4. 在cats服务中引用



服务

介绍模块之前先提一嘴服务(),对于文档这块我看完了并没有明白这个里面写的该是什么,然后我问了我的后端朋友他们的service 层都做些什么,才得知这里一般写数据库操作之前的逻辑.

1. 用命令创建service

nest g service cats

2. 写一些基本的代码

cats.service.ts文件下写下面代码

import { Inject, Injectable } from '@nestjs/common';
import { Cat } from './interfaces/cat.interface';

@Injectable()
export class CatsService {
  private readonly cats: Cat[] = [];

  create(cat: Cat) {
    this.cats.push(cat);
  }

  findAll(): Cat[] {
    return this.cats;
  }
  getText(){
    return 'cats模块里的控制器'
  }
}

nestjs打包的dist文件如何部署到服务器中 nestjs 教程_学习


这里用到了接口,把接口也定义一下

export interface Cat {
  name: string;
  age: number;
  breed: string;
}

nestjs打包的dist文件如何部署到服务器中 nestjs 教程_学习_02

一、模块应用

一般应用于你想要使用其他模块的方法的时候,可能我描述的不是很好,别着急,咱们啊,一会配合图就懂了

二、创建模块

使用命令nest g module cats创建(如果有多个环境别忘了选环境哦)

三、功能模块基本使用

  1. 在cats.module.ts中引入想使用的模块
  2. 声明模块(不然一会在cats.controller使用会报错)
  3. 在controller层使用
  4. 访问看下效果

nestjs打包的dist文件如何部署到服务器中 nestjs 教程_数据库连接_03

四、全局模块

如果有全局引用的需要,可以尝试@Global()暴露出去,就不用每个使用的地方都引用了,不过这并不是可取的。但是有时候,你可能只想提供一组随时可用的东西 - 例如:helper,数据库连接等等。这就是为什么你能够使模块成为全局模块。

1.创建模块share

这里为了回顾下之前讲的,直接将controller,service,module都创建一下吧(如果不止一个环境的话别忘了选哦)

nest g controller share
nest g service share
nest g module share

2. 在service中创建个方法

  • share.service.ts
import { Injectable } from '@nestjs/common';

@Injectable()
export class ShareService {
    getShareData(){
        return '公共服务'
    }
}

nestjs打包的dist文件如何部署到服务器中 nestjs 教程_数据库操作_04

3. 在module中注册为全局

share.module.ts

import { Global, Module } from '@nestjs/common';
import { ShareService } from './share.service';
// import { ShareController } from './share.controller';
@Global()
@Module({
  providers: [ShareService],
  // controllers: [ShareController],
  exports:[ShareService],//必须导出
  imports:[]
})
export class ShareModule {}

这里要注意的除了@Global()注册全局,还有exports导出模块,

nestjs打包的dist文件如何部署到服务器中 nestjs 教程_数据库连接_05

4. 在cats服务中引用

nestjs打包的dist文件如何部署到服务器中 nestjs 教程_数据库连接_06


还有个动态模块我暂时没搞清楚,等我研究明白了补上