nest
业火之理
这个作者很懒,什么都没留下…
展开
-
【nest】nest+typeorm导入env写法
前言以前文章里也能导入env但不是常规写法,经过研究后发现了比较优雅的写法。原理nest官方提供的@nest/config确实让我们方便注入env的,但是我用法不太对,比如一开始的typeorm需要连接数据库,前面文章里直接forroot然后默认就走的ormconfig去连接编译后的文件,虽然效果也行,但用用别的方法也挺有趣的。连接编译后的文件我还遇到个大坑,差点把我吓死,还好失败回滚了。就是ts实体编译后,然后我改变实体名,或者删掉实体,我本意就是不想让typeorm去操作那个实体,然后我开原创 2020-10-25 23:14:52 · 1786 阅读 · 3 评论 -
【typeorm】typeorm官方文档querybuilder插入更新删除部分
接上篇使用 Query Builder 插入你可以使用QueryBuilder创建INSERT查询。 例如:import { getConnection } from "typeorm";await getConnection() .createQueryBuilder() .insert() .into(User) .values([{ firstName: "Timber", lastName: "Saw" }, { firstName: "Phantom", lastNa.原创 2020-10-20 23:51:03 · 3102 阅读 · 0 评论 -
【typeorm】typeorm官方文档querybuilder查询部分搬运
前言由于typeorm的文档正常情况上不去,所以搬运下有时候要用。什么是QueryBuilderQueryBuilder是 TypeORM 最强大的功能之一 ,它允许你使用优雅便捷的语法构建 SQL 查询,执行并获得自动转换的实体。QueryBuilder的简单示例:const firstUser = await connection .getRepository(User) .createQueryBuilder("user") .where("user.id = :id", {原创 2020-10-20 22:53:24 · 6463 阅读 · 3 评论 -
【nest】nest学习笔记(八)
前言本篇利用上一节jwt+local策略+passport的知识结合redis制作单点登录。原理主要利用jwt每次生成token不一样,再次登录时覆盖redis的键使得验证不通过。passport-jwt守卫可以对已发出的jwt token进行验证,如果验证成功,再去redis上对比下即可完成单点登录。流程首先nest new一个项目出来。同时安装typeorm mysqlnpm install --save @nestjs/typeorm typeorm mysql npm原创 2020-10-02 19:15:14 · 1194 阅读 · 3 评论 -
【nest】nest学习笔记(七)
前言本篇主要是jwt使用和passport相关官网https://docs.nestjs.com/techniques/authenticationnest官网介绍说验证最好结合使用passport ,并且提供了@nestjs/passportpassport: http://www.passportjs.org/docs/passport自定义策略可以看看这个https://github.com/jwalton/passport-api-docs流程nest 新开个项目 nest原创 2020-09-30 21:20:22 · 561 阅读 · 3 评论 -
【nest】nest学习笔记(六)
前言继续学习nest,本篇为管道和异常过滤器。管道https://docs.nestjs.com/pipes管道的主要作用对客户端传递的数据进行转换,依赖包class-transformer(需要自己安装)对客户端传递的数据进行校验,依赖包class-validator(需要自己安装)Nestjs官方提供的几个内置管道(官网说的开箱即用)ValidationPipeParseIntPipeParseBoolPipeParseArrayPipeParseUUIDPipeDef原创 2020-09-21 00:18:05 · 903 阅读 · 2 评论 -
【nest】nest学习笔记(五)
前言继续学习nest,前几天花了点时间重构了下dooring,学习计划拉的有点多。中间件1、Middlewares中间件(作用在客户端和控制器之间)2、Guards守卫3、Interceptors拦截器(在流被操纵之前)4、Pipes管道5、Interceptors拦截器(在流被操纵之后)6、Exception filters过滤器(如果发现任何异常)函数中间件函数中间件就是跟express中间件写法一样:import { NextFunction, Request, Re原创 2020-09-18 02:07:24 · 681 阅读 · 0 评论 -
【nest】nest结合typeorm基本使用
前言前面分别学习了nest与typeorm的基本使用,下面需要把2者结合起来。本篇任务:1、创建users、posts、role表,每个表字段不少于4个2、users和posts是一对多的关系(不要求一定创建外键)3、users和role是多对多的关系(不要求一定创建外键)4、users、posts、role的增删改操作5、查询用户列表,要同时查询出关联的posts和role的数据6、给用户分配角色的时候时候要加上事务7、上面的全部提供restfull api接口的方式官网资料:htt原创 2020-09-09 19:00:20 · 5736 阅读 · 2 评论 -
【typeorm】typeorm学习笔记(二)
前言本篇是一些x对x的写法。一对一一般情况一对一要创建双向关系,以上次创建的user表为例,额外新增user的扩展表user_extend:import { Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn,} from "typeorm";import { User } from "./User";@Entity({ name: "user_extend" })export class UserEx原创 2020-09-06 16:06:09 · 1949 阅读 · 1 评论 -
【nest】nest学习笔记(四)
前言本篇学习下IOC&DI,Reflect Metadata,以及nest中的大致原理。我主要就是这里比较薄弱,所以看了nest感觉和作者水平差距太大了。Reflect Metadata在写nest时候,上面可能会导入reflect metadata 。官网 https://www.npmjs.com/package/reflect-metadata官网上说了,使用这玩意需要tsconfig开启2个装饰器按钮:To enable experimental support for原创 2020-09-05 08:21:10 · 394 阅读 · 0 评论 -
【typeorm】typeorm学习笔记(一)
前言最近越来越多听到这玩意了,试玩下。看了下介绍,有点叼,一个orm居然支持各种主流数据库。安装npm install typeorm -g生成项目typeorm init --name MyProject --database mysql配置文件{ "type": "mysql", // 选用的数据库 "host": "localhost", // 数据库地址 "port": 3306, // 数据库端口 "username": "test", // 数据库用户名原创 2020-09-03 07:13:53 · 5789 阅读 · 5 评论 -
【nest】nest学习笔记(三)
前言本篇写个增删改查demo 。 这个nest 绝对是大神中的大神写的,ts的装饰器跟别的语言装饰器不太一样,所以如果想手撕手写nest很难。别的语言装饰器比如python就跟语法糖一样,写出这种效果没啥稀奇,ts写出这玩意真是牛b,感觉作者ts水平高我好几个档次。流程做增删改查demo,正常来说,需要一个数据库,但是毕竟初学,先直接使用内存变量替代数据库。制作个模板,先试着渲染出来:<!DOCTYPE html><html lang="en"> <he原创 2020-09-02 14:17:47 · 533 阅读 · 0 评论 -
【nest】nest学习笔记(二)
前言继续学习nest。本篇是传参、模板、cookie、session的使用。知识梳理在Nestjs中接收浏览器上的参数1、常见的方法列表No.名字字段说明(参考express框架字段)1@Request()req 获取到req请求的参数2@Response()res 使用了res就不使用使用return返回值需要使用res.send()3@Next()next4@Session()req.session5@Param(key?原创 2020-09-01 23:48:15 · 1417 阅读 · 0 评论 -
【nest】nest学习笔记(一)
前言最近在学nest,感觉这个框架写的真nb,而且感觉有点django的味道,不过据说是仿spring搞得,先玩玩试试。另外,关于nest,个人觉得不建议新手以及不懂ts的人学,即使学会了,也只是知道个套路写法,并不是真正的会,对个人技术提升没有实质性帮助。创建项目官网地址:https://docs.nestjs.com/cli/overview安装脚手架npm install -g @nestjs/cli查看命令:nest-book git:(master) nest #原创 2020-09-01 03:44:32 · 1883 阅读 · 1 评论