Nestjs中的服务可以是service 也可以是provider。
Nestjs中的服务可以是service 也可以是provider。他们都可以通过 constructor 注入依赖关系。服务本质上就是通过@Injectable() 装饰器注解的类。在Nestjs中服务相当于MVC的Model。
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方法获取数据