nestjs学习笔记(一):环境搭建与模式粗略分析

该系列其他文章:
nestjs学习笔记(二):使用webpack热重载nestjs

简要提一下安装过程

nestjs是nodejs的一套基于express和typescript实现的服务端框架。之所以学习它是因为它相较其他nodejs框架比较更加系统和工程化。
github: https://github.com/nestjs/nest
英文文档: https://docs.nestjs.com
中文文档: https://docs.nestjs.cn/5.0/firststeps
腾讯云文档: https://cloud.tencent.com/developer/section/1490165
nestjs安装以及脚手架初始化项目:

$ npm i -g @nestjs/cli
$ nest new my-project       #填写你项目名字

之后进入my-project 目录安装相关依赖项。

cd my-project
npm install 

大功告成,现在我们已经搭建好工程了!!

nestjs的目录结构

src
├── app.controller.ts
├── app.module.ts
└── main.ts

这在官方文档里都有,这里我按照我自己的理解进行一些简单类比,如有错误请多多指正。

module.ts

定义一个模块,module是nestjs的核心,其内部引入了 控制器(controller) 和对应 服务提供者(service)模块可以引入子模块的依赖。刚入门感觉nest使用这种方式对每个模块进行了解耦。

controller.ts

nest默认隐藏了路由,当定义controller的时候,默认路由就是创建controller时的修饰器函数里传递的参数

@Controller('cats')
export class CatsController {}

例如定义了controller:CatsController,注意在类上方的修饰器函数传递的参数:“cats”, 那么默认这个控制器影响的路由就是:xxx/cats
控制器中可以定义针对同一路由的不同请求访问,不同的解决方案:

get方式访问/cats 并且不携带id等参数
访问url: xxx/cats

  @Get()
  async findAll(): Promise<any> {
    return 'hello world';
  }

get方式访问/cats 携带两个id参数
访问url: xxx/cats/我是id1/我是id2

  @Get(':id1/:id2')
  async findOne(@Param() params): Promise<any> {
    // 控制器中获取
    return `This action returns a #${params.id1} & #2${params.id2} cat`;
  }

post方式访问/cats
一般用于创建新对象
其中reqParamsObject为post 请求体中携带的参数对象

  @Post()
  async create(@Body() reqParamsObject: ReqParamsObject): Promise<any> {
    return `This action adds a new cat ${JSON.stringify(reqParamsObject)})`;
  }

put方式访问/cats
一般用于更新
访问方式:xxx/cats/这是cat的id
同时携带请求体的更改参数

  @Put(':id')
  update(@Param('id') id, @Body() updateCatDto) {
    return `This action updates a #${id} cat`;
  }

delete方式访问/cats

  @Delete(':id')
  remove(@Param('id') id) {
    return `This action removes a #${id} cat`;
  }
main.ts

主程序的入口,启动服务的地方。内部引入了NestFactory用于依赖注入。通过Factory引入对应模块依赖。

如有不足请多多指正!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容