1.什么事nest.js
个人觉得在使用nest.js之前还是需要了解下什么是nest.js,才能在后边有个指导思想,帮助我们更快的学习。
nest(Nestjs)是基于express的HTP服务器框架上,还可以通过配置使用fastify的构建,完全支持TypeScript, 结合OOP(面向对象), FP(函数式编程) 和 FRP(函数响应式编程)。
2.nest安装
npm i -g @nest/cli (现在应该都知道什么是npm了吧)
nest new project-name(项目名称) (这里需要说明就是框架也提供了yarn的方式,使用那种根据自己的爱好来就好)
下面就是nest项目的目录3.nest执行
cd project-name
npm install
npm run start:dev(测试)
npm run start:debug(开发)
npm run start:prod(生产)
npm run start(启动)
以上就是nest启动的基本命令,启动成功,访问3000端口,即可看到 “hello world”
这样一个nest的基础项目就创建完成了,是不是很快呢。。哈哈
4.项目基本构成
nest生成的都在src这个目录下,直接上图吧main 为入口文件,创建app实例
module 创建依赖关系,完成对应的Controller, Provider的加载,完成应用的启动
service 定义一个Provider,服务的提供者
controller 控制器,定义路由和数据的返回关系
以上就是个完整的项目了,但是这和开发应用还有一定的差距。哪又如何开发我们对应的应用呢??
先学习几个nest几个简单的创建应用目录的命令吧
nest g co/controller name 创建控制器
nest g mo/module name 创建模块
nest g s/service name 创建服务模块
nest g lib/library name. 创建新库
使用以上这几个命令就能愉快的创建自己的文件了,但是新的问题又来了,如何使用我们创建的文件呢??我们从controller -> module -> service 这样的顺序实现个简单的接口。
nest g co user
nest g s user
执行命令实现user的controller和service, 使用命令框架会自动载入文件,命令结束后就能看到src下多了个user的目录了,包含了controller和serivce。
如何使用模块呢??
nest g mo user
模块是为了更好的聚合我们的功能,将同一个应用程序移动到一个功能模块下。再创建控制器和服务service。控制器和服务就能直接被注入到模块;
import { Module } from '@nestjs/common';
import { UserController } from './user.controller';
import { UserService } from './user.service';
@Module({
controllers: [UserController],
providers: [UserService]
})
export class UserModule {}
在nest的模块中有@module() 的装饰器描述对象的属性:
属性 | 解释 |
---|---|
provoders | nest注入器实例化提供者,至少在整合模块内共享 |
controllers | 控制器 |
imports | 导入当前模块需要服务的提供者的模块 |
exports | 到处模块,对其他模块提供服务 |
然后就可以在控制器和服务中创建应用了。
//controller
import { Controller, Get } from '@nestjs/common';
import { UserService } from './user.service';
@Controller('user')
export class UserController {
constructor(private readonly UserService: UserService){}
@Get('list')
userList(): String {
return this.UserService.userList();
}
}
//service
import { Injectable } from '@nestjs/common';
@Injectable()
export class UserService {
userList(){
return 'userlist';
}
}
访问 localhost:3000/user/list 就能看到结果,以上就是创建简单应用的步骤,这也仅仅是简单的入门,下次再学习更深入的应用。