装饰器

最新写nestjs项目时,接触到很多装饰器,今天对装饰器来个详细的纪录

装饰器本身是一个函数,我觉得他最直接的意思就是 给当前类、函数、字段、参数格外的功能

由于目前装饰器概念还处于提案阶段,不是一个正式可用的JS功能,所以想要使用这个功能,不得不借助翻译器工具,例如Babel工具或者TypeScript编译JS代码转后才能被执行。

IOC与DI

控制反转(Inversion of Control,缩写为IOC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。(最简单的就是分层,减少代码耦合)
其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)

依赖注入

cat.service.ts (要注入的类)

// cat.service.ts
import { Injectable } from '@nestjs/common';
import { Cat } from './interfaces/cat.interface';@Injectable()
export class CatsService {private readonly cats: Cat[] = [];findAll(): Cat[] {return this.cats;}
}

cat.controller.ts(被注入的类)

import { Controller, Get } from '@nestjs/common';
import { CatsService } from './cats.service';
import { Cat } from './interfaces/cat.interface';@Controller('cats')
export class CatsController {constructor(private catsService: CatsService) {}@Get()async findAll(): Promise<Cat[]> {return this.catsService.findAll();}
}

app.module.ts(容器注册)

import { Module } from '@nestjs/common';
import { CatsController } from './cats/cats.controller';
import { CatsService } from './cats/cats.service';@Module({controllers: [CatsController],providers: [CatsService],
})
export class AppModule {}

学习nest之后的一些感悟相关推荐

  1. 《好好学习》读书笔记心得感悟1400字

    <好好学习>读书笔记心得感悟1400字: 再有三个月,孩子就要上小学了. 这两天,孩子的爷爷奶奶反复和我强调,一定要养成良好的作息习惯."第一,早睡早起.晚上无论我有多忙,也一定 ...

  2. 对这段时间学习数据库的总结和感悟

    对这段时间学习数据库的总结和感悟 从2018-12月开始学习mysql,到今天,已经一个月了,因为上班的关系,所以只能每天挤时间出来学习mysql,因为之前一直是使用oracle数据库,所以我也没顾得 ...

  3. Java源码阅读学习后的浅析和感悟(JDK篇)(持续更新)

    目录 Java源码阅读学习后的浅析和感悟(JKD篇) - 为什么阅读源码 集合框架类 - 为什么会要引入集合 - 集合结构图(部分) ArrayList集合源码分析 - 扩容机制 - 关键方法解释(D ...

  4. 学习C语言的一些感悟

    我们在刚刚学习C语言时,第一次利用scanf往程序里面输入数据,然后利用printf打印到屏幕上时,我们会觉得很神奇,很兴奋. 你觉得写代码是一个好玩的事情,想要把它学好,这可能是我们大部分人的初心. ...

  5. python程序设计心得体会感想-从Python学习中得到的一点感悟

    我们经常性的使用语言,比如被我们忽略的人类语言.语言作为沟通的工具,它的功用再清楚不过了,不一样的是,程序设计语言是人和计算机之间沟通的工具.可以说,冯诺依曼计算机的五大部件决定了计算机的文化和程序语 ...

  6. 2018年终总结_四年计算机科班学习经验分享+半年工作感悟

    一.写作初衷&简单自我介绍 本科专业为计算机科学与技术,今年六月毕业后入职一家上市游戏公司从事游戏服务器端开发,九月中旬离开游戏行业,目前在一家互联网公司从事图形图像音视频算法岗,偶尔兼顾服务 ...

  7. 学习一段深有感悟的讲话

    A工程是我们共同的愿景,从起航到现在大家都在不断克服困难,从挫折中成长,面对问题和解决困难的唯一方法就是团结和信心. 我认为技术上就是专业和认真,这里只有技术是唯一的尺度和标准. 在心态上保持阳光和简 ...

  8. 零基础学python需要多久-零基础学习Python大概要多久,感悟分享?

    在互联网时代编程无处不在,它存在于我们生活和工作之中,可以说哪里有通讯,哪里有互联网就一定会有编程.由于Python软件比较简便,因而Python已经成为,编程人员乐于选择的一款软件,这款软件的语言比 ...

  9. 零基础学python要多久-零基础学习Python大概要多久,感悟分享?

    在互联网时代编程无处不在,它存在于我们生活和工作之中,可以说哪里有通讯,哪里有互联网就一定会有编程.由于Python软件比较简便,因而Python已经成为,编程人员乐于选择的一款软件,这款软件的语言比 ...

最新文章

  1. js 异步和同步的区别
  2. STL源码剖析---空间配置器
  3. CreateProcess的使用方法
  4. 为何程序C语言不会消亡?程序员学习C会白学吗?
  5. [转]Dynamic and static Rectangle in WPF
  6. 1.1.0-简介-P3-CAP 分布式 高可用
  7. 2009.12.9.工作日记
  8. flask 返回json_flask中request.json做了什么
  9. ArcGIS Maritime Server 开发教程(八)ArcGIS Bathymetry 扩展模块
  10. matlab 排列组合
  11. jmeter处理带表单的接口请求
  12. 洪水填充算法_Unity 3D - 洪水填充/油漆桶算法不断崩溃引擎
  13. SpringBoot-Google二步验证
  14. Rss Feed是什么
  15. 精确休息法——《万维钢.精英日课3》笔记
  16. 如何制作公众号首图?教你一键套用图片模板
  17. vue拖拽指令之offsetX、clientX、pageX、screenX
  18. Java网编之:Socket套接字
  19. php 1为false,false是1还是0
  20. MFC(C++)实现斑马标签打印机打印

热门文章

  1. 无刷直流电机与有刷直流电机的区别
  2. 《软件测试》学习笔记(自整理)
  3. 管理系统表达式配置页面及js
  4. [深入理解Java虚拟机]第十一章 程序编译与代码优化-晚期(运行期)优化
  5. 2-《解忧程序员》读后感
  6. 做一个具有阳光思维的人
  7. 共集电极放大电路的分析
  8. forward()和sendRedirect()的区别
  9. 关于印度爱经图片版本说明
  10. win10 64位注册dll ,ocx插件问题