Nestjs学习笔记系列-1.入门体验
Nest.js是一个渐进的Node.js框架,可以在TypeScript和JavaScript (ES6、ES7、ES8)之上构建高效、可伸缩的企业级服务器端应用程序。它的核心思想是提供了一个层与层直接的耦合度极小、抽象化极高的一个架构体系。
最近随便逛逛的时候突然发现了Nestjs
,感觉这玩意出现的频率还挺高的,搜索了一下,GitHub上面有3万多颗星。
最重要的是它接近于Java的Spring框架,在使用Nest构建的项目中,会大量的使用到装饰器,而我对装饰器有种莫名的喜爱。
Nestjs是专门为企业级项目而生的,提供了大量的标准,使代码层次比起express和koa更加清晰,同时Nestjs还支持分布式,可以说是当下最火的Nodejs后端框架之一。
Nestjs底层是基于express实现的,所以不用担心中间件的问题。
Nestjs完美支持了TypeScript,虽然使用JavaScript也是可以进行开发,但是官方还是建议大家使用TypeScript进行开发。
在经过一段时间的TypeScript使用后,发现TypeScript是真的香,现在已经不想再使用JavaScript进行编写项目了。
TypeScript解决了JavaScript中类型不明确,如果是自己编写的JavaScript文件,可能隔了1~2个星期后你自己也不知道某个参数里面有什么值,而TypeScript的类型推断完美的解决了这个问题。
TypeScript还可以使用最新的语法,完全不用担心兼容性的问题,因为它会自动帮你转换成对应的JavaScript语法。
最开始使用TypeScript的时候可能你会觉得各种不习惯,但是使用久了后,你会发现TypeScript是真的好用。
并且现在TypeScript的周下载量持续走高,估计以后企业招聘中TypeScript是一项必备技能。
开始使用
$ npm i -g @nestjs/cli
$ nest new project-name
相信看到这篇文章的都是有一定基础的,所以就不详细讲解怎么创建项目了。
app.controller.ts
:带有单个路由的基本控制器示例。app.module.ts
:应用程序的根模块。main.ts
:应用程序入口文件。它使用 NestFactory 用来创建 Nest 应用实例。
运行项目
$ npm run start
此命令在 src
目录中的 main.ts
文件中定义的端口上启动 HTTP 服务器。在应用程序运行时, 打开浏览器并访问 http://localhost:3000/
。 你应该看到 Hello world!
信息。
controller
控制器负责处理传入的 请求 和向客户端返回 响应 。即接受用户请求相关的内容都应该写在controller
文件中。
创建一个控制器
在nest
中,创建一个控制器是非常简单的,你只需要通过下面的命令:
nest g co [name]
通过这种方式可以快速的生成一个controller
,如果不通过这种方式的话,你需要手动进行创建文件,然后在app.module.ts
中的controllers
进行引入该文件。
其中xxx.controller.spec.ts
文件是测试文件。在nest中,使用了Jest
进行单元测试。
import { Controller, Get, Request } from '@nestjs/common';
@Controller('user') // 所有的请求都在 /user 这个路由下面
export class UserController {
// 不填写内容即默认为Get请求/user时,就执行index函数
@Get()
index(@Request() req) {
return 'user';
}
}
访问结果:
配置静态资源
服务
跨域
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!