Nest.js你学不会系列-初识Nest】的更多相关文章

前言 最近在学习研究 Nest 框架,但是在学习过程中除了参考翻阅官方文档外国内几乎没有多少资料能系统的讲解 Nest 的相关内容,所以打算想通过我自己学习的角度讲解下 Nest 框架,不知道能坚持多久,也可能有错误或遗漏的地方,欢迎大家批评指正. 下面我学习 Nest 的主要信息来源,在编写过程中还会有其他途径获取的信息会在文末给出: 官网:https://nestjs.com/ 中文网站:https://docs.nestjs.cn/ GitHub: https://github.com/n…
nest的核心概念: Nest的核心概念是提供一种体系结构,它帮助开发人员实现层的最大分离,并在应用程序中增加抽象. 架构预览: 主要有三个核心概念:模块Module,  控制器Controller, 服务与依赖注入 Provider Dependency injection 模块Module:   用于将代码拆分为独立的和可重用的模块,例如用户信息模块,然后将该用户模块的控制器和服务集合进来,最后直接将用户模块导入到根Module就可以使用了. 控制器Controller: 负责处理客户端传入…
GitHub OAuth 第三方登录 第三方登录的关键知识点就是 OAuth2.0 . 第三方登录,实质就是 OAuth 授权 . OAuth 是一个开放标准,允许用户让第三方应用访问某一个网站的资源,而不需要提供账号和密码. 总体就是:myapp <===> user <===> github 授权的总体流程 用户进入到我的网站,我想要获取到用户的 GitHub 信息 跳转到 GitHub 授权页面,然后问用户是否允许我获得他的信息,授予权限 同意,我的网站会获得 GitHub…
github nest 介绍 Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架.它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(函数式编程)和 FRP(函数式响应编程)的元素. 在底层,Nest 使用强大的 HTTP Server 框架,如 Express(默认)和 Fastify.Nest 在这些框架之上提供了一定程度的抽象,同时也将其 AP…
在 Nest.js 中使用 MongoDB 与 TypeORM 首先要在 database 文件夹里建立DatabaseModule模块文件, // database/database.module.ts import { Module } from '@nestjs/common'; import { databaseProviders } from './database.providers'; @Module({ providers: [...databaseProviders], exp…
开发四年只会写业务代码,分布式高并发都不会还做程序员?   Nest.js 6.0.0 正式版发布了.Nest 是构建高效.可扩展的 Node.js Web 应用程序的框架.它使用现代的 JavaScript 或 TypeScript(保留与纯 JavaScript 的兼容性),并结合 OOP(面向对象编程),FP(函数式编程)和 FRP(函数响应式编程)的元素.在底层,Nest 使用了 Express,可以方便地使用各种可用的第三方插件. 新版更新内容如下: 新特性 core: 提取平台 (e…
nest.js tutorials A progressive Node.js framework https://docs.nestjs.com//firststeps nest.js CLI https://docs.nestjs.com/firststeps $ yarn global add @nestjs/cli # OR $ npm i -g @nestjs/cli $ nest new project-name refs https://docs.nestjs.cn/7/first…
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类的介绍,还有就是在线例子:esri 官网在线例子,这个也是学习 arcgis api 3.x 的好素材. 内容概览 基于 arcgis api 3.x 叠加 zip 压缩 SHP 图层 源代码 demo 下载 之前写过一篇前端 js 叠加 shp 图层的文章:arcgis api 3.x for j…
原文地址:arcgis api for js入门开发系列四地图查询 arcgis for js的地图查询方式,一般来说,总共有三种查询方式:FindTask.IdentifyTask.QueryTask (1)FindTask查询模式:基于关键字来模糊查询地图图层,属于文本型的,不能基于地图的设置的空间范围Geometry来查询,但是可以跨越多个图层来查询,比如餐饮图层.医疗服务图层等等: (2)IdentifyTask查询模式:跟FindTask反过来,基于地图的设置的空间范围Geometry…
NEST.Repository A simple encapsulation with NEST client for search data form elasticsearch. github API NESTReaderRepository TEntity Get(TKey id); TEntity Get(Func<QueryContainerDescriptor<TEntity>, QueryContainer> filterExp = null, Func<Sou…
Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql) Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识 Nodejs学习笔记(七)--- Node.js + Exp…
Docs: https://docs.nestjs.com/websockets/gateways λ yarn add @nestjs/websockets λ nest g ga events events.gateway.js import { SubscribeMessage, WebSocketGateway, WsResponse, WebSocketServer } from '@nestjs/websockets'; import { Observable, of } from…
Dapr 是一个可移植的.事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的.无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架. Dapr 中文手册:https://docs.dapr.io/zh-hans/ 文件结构 Dapr JS SDK https://github.com/dapr/js-sdk 创建包含我们的 NestJS 项目的文件结构: src/ main.ts app.module.ts config/config.ts dapr/…
写在最开头:其实我以前就在考虑要不要写这个东西,因为这个东西确实不难,但是为什么会有这么多人问,他们问的不是怎么用控制台,而是不知道控制台能干嘛,他们也知道有 console.log 之类的东西,但他们不知道为什么要用这么长的字符串代替 alert 输出信息.在他们眼里 alert 足以.好吧,我承认小小的吐槽了下,不过这个系列我只打算介绍下调试的基本知识,不会涉及太深,因为深入的东西结合js知识,如果你js没到一个境界,我就算教你调试bug,破解一些插件之类的,你也根本不知道我在做什么.我的目…
文档 let r = await this.http.get(`https://api.github.com/users/januwA`).toPromise().then(v => v.data); l(r);…
Docs: https://docs.nestjs.com/interceptors 该对象包含从路由处理程序返回的值 在方法执行之前/之后绑定额外的逻辑 转换函数返回的结果 转换从函数抛出的异常 // logging.interceptor.ts import { ExecutionContext, Injectable, NestInterceptor, HttpException, HttpStatus } from '@nestjs/common'; import { Observabl…
Docs: https://docs.nestjs.com/guards 当调用者具有足够的权限时,特定路由才可用 // app.guard.ts import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common'; import { Observable } from 'rxjs'; import { Reflector } from '@nestjs/core'; import * as _ from 'lod…
Docs: https://docs.nestjs.com/pipes 管道将输入数据转换为所需的输出.此外,它可以处理验证,当数据不正确时可能会抛出异常. 内置的 pipe import { ArgumentMetadata, Injectable, PipeTransform, BadRequestException } from '@nestjs/common'; @Injectable() export class InfoPipe implements PipeTransform {…
Docs: https://docs.nestjs.com/exception-filters http状态码 @Get('error') Error(@Query('name') name){ if(!name) throw new HttpException('错误示例.', HttpStatus.FORBIDDEN) return '什么事都没有: ' + name; } // 也可以传递 object if(!name) throw new HttpException({ error:…
Docs: https://docs.nestjs.com/middleware 创建中间件 logger.middleware.ts import { Injectable, NestMiddleware, MiddlewareFunction } from '@nestjs/common' @Injectable() export class LoggerMiddleware implements NestMiddleware { resolve(...args: any[]): Middl…
最近公司有个arcgis api for js的项目,需要用到百度echarts迁徙图效果,而百度那个效果实现是结合百度地图的,怎么才能跟arcgis api结合呢,网上搜索,终于在github找到了,github源代码地址:https://github.com/wandergis/arcgis-echarts:在此,非常感谢原创作者wandergis无私奉献: 整合进去自己demo的效果图如下: 实现思路: 1.自定义EchartsLayer类,为了把echarts迁徙图的渲染效果跟esri的…
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类的介绍,还有就是在线例子:esri 官网在线例子,这个也是学习 arcgis api 3.x 的好素材. 最近公司有个 arcgis api 3.x for js 的项目,需要用到百度 echarts 迁徙图效果,而百度那个效果实现是结合百度地图的,怎么才能跟 arcgis api 结合呢,网上搜索…
在上一篇文章中,我在介绍vertex shader的时候挖了一个坑:CC_MVPMatrix.它其实是一个uniform,每一个Cocos2d-x预定义的shader都包含有这个uniform,但是如果你在shader里面不使用这个变量的话,OpenGL底层会把它优化掉. 但是,CC_MVPMatrix是在什么时候设置进来的呢?我在shader里面明明没有看到它,它从哪儿来的?别急,请继续往下读. 初识Uniform 在回答上面几个问题之前,让我们先来介绍一下什么是uniform.简单来说,un…
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node/stream stream 概念 Node.js 诞生是为了解决 I/O 密集的 Web 性能问题,最常使用的两个模块就是文件系统和网络,而这两个模块都是 stream 的重度用户,stream 是 Node.js 从入门到进阶的必经之路 Node.js 对 stream 是这样解释的 A str…
1.初识JS a.我的第一个JS程序: document.write("Hello JS")://这段代码是输出到body中就是直接打开就可以看到: console.log("Hello JS"); //这段代码是可以通过检查,可以在后台显示看到: b.JS添加 JS在一个页面内可以在任何地方添加<script type="text/javascript">document</script>顺序自上而下执行: c.JS引入…
上一篇实现了demo的图层控制模块,本篇新增聚合效果,截图如下(源代码见文章底部): 聚合效果实现的思路如下: 1.map.html引用聚合包,项目已经包含进来了的聚合文件夹: <script type="text/javascript"> //配置arcgis拓展解析天地图服务类引用的路径 dojoConfig = { parseOnLoad: true, paths: { ExtensionClusterLayer: location.pathname.replace(…
上一篇实现了demo的地图分屏对比模块,本篇新增图层控制模块,截图如下(源代码见文章底部): 图层控制模块实现的思路如下: 1.在地图配置文件map.config.js里面配置图层目录树节点信息,作为主界面图层控制的数据源: /*图层目录构造*/ MapConfig.zNodes = [ { id: 1, pId: 0, name: "图层目录", checked: false, iconOpen: "" + getRootPath() + "Conten…
上一篇实现了demo的地图标绘模块,本篇新增地图地图分屏对比模块,截图如下(源代码见文章底部): 对效果图的简单介绍一下,在demo只采用了两分屏对比,感兴趣的话,可以在两分屏的基础上拓展,修改css样式以及js控制,可以修改为多屏对比效果: 1对应的是鼠标当前位置,2对应的是1在另一个分屏的地图位置:3是切图不同底图的作用. 地图分屏效果的对比,核心在于拥有不同年份或者不同类型的底图之间的对比才有意义的,这里的dmeo由于地图数据素材的限制,没有不同类型的底图,所以凑合的采用同一张底图的对比,…
上一篇实现了demo的地图查询功能,本篇新增地图态势标绘模块,截图如下: 本篇核心的在于调用API的Draw工具:https://developers.arcgis.com/javascript/3/jsapi/draw-amd.html require(["esri/toolbars/draw"], function(Draw) { /* code goes here */ }); 构造函数: new Draw(map, options?) 一般来说,传参map对象进来就行,其他参数…
备注:由于实现本篇功能的需求,修改了地图数据的dlsearch.mxd,然后更新了地图服务,需要的在文章最后有提供最新的mxd以及源代码下载的 上一篇实现了demo的地图工具栏,本篇新增地图查询功能,包括属性查询和空间查询两大块,截图如下: 属性查询效果图: 空间查询效果图: 谈核心代码实现之前,我大概的讲一讲arcgis for js的地图查询方式,一般来说,总共有三种查询方式:FindTask.IdentifyTask.QueryTask (1)FindTask查询模式:基于关键字来模糊查询…