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文件中。

img

创建一个控制器

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';
  }
}

访问结果:

image-20201101202022113

配置静态资源

服务

跨域


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!