Nestjs服务

Nestjs中的服务可以是service 也可以是provider。

1、关于NestJS中的服务

Nestjs中的服务可以是service 也可以是provider。他们都可以通过 constructor 注入依赖关系。服务本质上就是通过@Injectable() 装饰器注解的类。在Nestjs中服务相当于MVC的Model。

Nestjs服务


2、NestJS中创建和使用服务

1、创建服务

nest g service news
创建好服务后就可以在服务中定义对应的方法

	import { Injectable } from '@nestjs/common';

	@Injectable()
	export class NewsService {	
		findAll(){	
			return [
				{"title":"新闻111"},
				{"title":"新闻2222"},
				{"title":"新闻3333"},
				{"title":"新闻111"},
				{"title":"新闻2222"},
				{"title":"新闻3333"}
			];
		}
	}
	

2、使用服务

1、需要在根模块引入并配置


import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UserController } from './user/user.controller';
import { NewsService } from './news/news.service';
import { NewsController } from './news/news.controller';
import { ArticleController } from './article/article.controller';

@Module({
  imports: [],
  controllers: [AppController, UserController, NewsController, ArticleController],
  providers: [AppService, NewsService],
})
export class AppModule {}

2、在用到的地方引入并配置


	import { Controller, Get ,Render} from '@nestjs/common';

	import { NewsService } from './news.service';
	
	@Controller('news')
	export class NewsController {
	
		constructor(private newsServices:NewsService){}
	
		@Get()
		@Render('default/news')
		index(){
			return {
				newsList:this.newsServices.findAll()
			}
		}
	}
	
这个时候访问: http://localhost:3000/news 就可以调用newsServices里面的findAll方法获取数据