nest
文章平均质量分 62
nestjs学习记录
大神乔伊
产品,技术,思考,成长
展开
-
nest学习导航
nestjs + mysql + typeorm + 教程原创 2021-04-13 03:20:14 · 4516 阅读 · 5 评论 -
nest学习1:项目搭建
文章问题导向nest如何创建项目?nest如何使用快捷命令生成文件?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案第一步:全局安装nestjs脚手架,用于搭建项目npm install -g @nestjs/cli或者yarn global add @nestjs/cli安装完毕后,验证是否成功:查看版本号,显示版本号则安装成功nest -v第二步:创建项目cd到你的安装目录,输入命令选择安装的方式,gitbash可以使用数字1,2来选择安装方式原创 2021-04-13 03:12:31 · 1490 阅读 · 0 评论 -
nest学习:定时任务
文章问题导向nest如何开启定时任务?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案定时任务场景每天定时更新,定时发送邮件没有controller,因为定时任务是自动完成的第一步:安装yarn add @nestjs/schedule第二步:编写src -> taskstask.module.tsimport { Module } from '@nestjs/common';import { TasksService } from './t原创 2021-06-01 08:57:33 · 3152 阅读 · 1 评论 -
nest学习:文件上传和下载
文章问题导向nest如何文件上传?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案注意该文章只是单文件,小文件上传下载文件的两种方式第一种:后端压缩好文件,由前端下载第二种:基于流的方式,向前端发送内容本文是基于流的方式第一步:安装yarn add @nestjs/platform-express compressing@nestjs/platform-express 平台依赖compressing 文件下载依赖,提供流的方式第二步:配置s原创 2021-06-01 07:08:58 · 3001 阅读 · 2 评论 -
nest-mysql:RBAC权限管理
RBACRBAC是基于角色的权限访问控制(Role-Based Access Control)在RBAC中,有3个基础组成部分,分别是:用户、角色和权限,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限如:一般的管理系统中:销售人员:仅仅可以查看商品信息运营人员:可以查看,修改管理人员:可以查看,修改,删除,以及修改员工权限等等管理人员只要为每个员工账号分配对应的角色,登陆操作时就只能执行对应的权限或看到对应的页面RBAC实现流程实现角色的增删改查实现用户的增删原创 2021-05-21 22:57:23 · 1247 阅读 · 0 评论 -
nest学习:使用环境变量
文章问题导向随着项目越来越大,如果都把文件引入配置放在的全局配置中,1.不好管理,2.不够安全。如何抽离配置?更好地管理项目?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案环境变量根据使用环境的不同而设置不一样的配置为什么要使用环境变量?1,保护隐私数据2,根据环境动态配置,如开发环境和生产环境配置不同,需要区分配置node对象全局对象:process是node中的全局对象,无需引入即可使用环境变量:process.env则是用于配置环境变量设置原创 2021-05-10 12:26:53 · 3287 阅读 · 0 评论 -
nest-typeorm学习:使用事务的3种方式
文章问题导向typeorm使用事务的方式有哪些?如何使用?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案注意学习该文章,需要有一定的mysql知识基础你已经会使用nest连接mysql,如果不会:去学习事务在操作多个表时,或者多个操作时,如果有一个操作失败,所有的操作都失败,要么全部成功,要么全部失败解决问题:在多表操作时,因为各种异常导致一个成功,一个失败的数据错误。例子:银行转账如果用户1向用户2转了100元,但因为各种原因,用户2没有收到,如果没原创 2021-05-08 02:10:50 · 2640 阅读 · 0 评论 -
nest-typeorm学习:数据库实体设计与操作
文章问题导向typeorm的数据库实体如何编写?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案注意学习该文章,需要有一定的mysql知识基础实体设计简单例子import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn} from "typeorm";@Entity({ name: 'users' })export class User { @Pr原创 2021-05-06 02:49:37 · 1845 阅读 · 0 评论 -
对数据库的密码加密:md5和bcryptjs
文章问题导向如何对密码进行加密?哪种方式更加安全?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案密码加密一般开发中,是不会有人直接将密码明文直接放到数据库当中的。因为这种做法是非常不安全的,需要对密码进行加密处理。好处:1、预防内部网站运营人员知道用户的密码2、预防外部的攻击,尽可能保护用户的隐私加密方式使用md5:每次生成的值是一样的,一些网站可以破解,因为每次存储的都是一样的值使用bcryptjs:每次生成的值是不一样的当然还有其他的方式…原理可原创 2021-04-30 02:02:28 · 1101 阅读 · 0 评论 -
nest-集成redis实现单点登录
文章问题导向在nest中如何集成redis?如何使用redis?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案第一步:引入安装yarn add nestjs-redis参考文章https://blog.csdn.net/lxy869718069/article/details/113975443官网-多对多学习更多nest学习导图...原创 2021-04-30 00:48:01 · 1852 阅读 · 1 评论 -
nest-typeorm-mysql:多对多关系设计与增删改查
文章问题导向实体如何设计多对多关系?如何增删改查?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案多对多关系定义:多对多是一种 A 包含多个 B,而 B 包含多个 A 的关系如:一个粉丝可以关注多个主播,一个主播有多个粉丝如:一篇文章属于多个分类,一个分类下有多篇文章比如这篇文章,可以放在nest目录,也可以放在typeorm目录或者mysql目录参考文章https://blog.csdn.net/lxy869718069/article/details/113原创 2021-04-29 01:52:17 · 2053 阅读 · 1 评论 -
nest-typeorm-mysql:一对一关系设计与增删改查
文章问题导向实体如何设计一对一关系,一对多关系,多对多关系?如何关系查询?如何联表查询?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案一对一关系定义:一对一是一种 A 只包含一个 B 实例,而 B 只包含一个 A 实例的关系其实就是要设计两种表:一张是主表,一张是副表有外键的表称之为副表,不带外键的表称之为主表如:一个账户对应一个用户信息,主表是账户,副表是用户信息如:一个用户对应一张用户头像图片,主表是用户信息,副表是头像地址一对一实体设计主表:使用原创 2021-04-28 00:12:49 · 1084 阅读 · 2 评论 -
nest-typeorm-mysql:一对多和多对一关系设计与增删改查
文章问题导向实体如何设计一对多与多对一关系,如何关联查询?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案一对多关系,多对一关系定义:一对多是一种一个 A 包含多个 B ,而多个B只属于一个 A 的关系其实就是要设计两个表:一张是主表(一对多),一张是副表(多对一),查找主表时,关联查找副表有外键的表称之为副表,不带外键的表称之为主表如:一个用户拥有多个宠物,多个宠物只属于一个用户的(每个宠物只能有一个主人)如:一个用户拥有多张照片,多张照片只属于一个用户的如:一原创 2021-04-27 23:12:32 · 2350 阅读 · 0 评论 -
nest-typeorm学习:增删改查操作
文章问题导向随着项目越来越大,如果都把文件引入配置放在的全局配置中,1.不好管理,2.不够安全。如何抽离配置?更好地管理项目?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案第一步:安装相关依赖yarn add nestjs-config第二步:引入配置app.module.tsimport * as path from 'path';import { Module } from '@nestjs/common';//数据库import { TypeO原创 2021-04-26 19:18:45 · 6617 阅读 · 0 评论 -
nest基于possport + jwt做登陆验证
文章问题导向如何 限制 和 验证 前端传递过来的数据?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案方式与逻辑基于possport的本地验证和jwt验证,第一步:安装yarn add @nestjs/jwt @nestjs/passport passport-jwt passport-local passportyarn add -D @types/passport @types/passport-jwt @types/passport-local第二步:编原创 2021-04-26 15:44:11 · 1828 阅读 · 1 评论 -
nest集成swagger
文章问题导向如何集合 与 使用swagger?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案优缺点优点:不用写接口文档,在线生成,自动生成,可操作数据库,完美配合dto缺点:多一些代码,显得有点乱,习惯就好第一步:安装yarn add @nestjs/swagger swagger-ui-express -D第二步:在main.ts引入并配置import { NestFactory } from '@nestjs/core';import { AppMo原创 2021-04-25 22:01:55 · 2447 阅读 · 0 评论 -
nest学习:跨域,前缀路径,网站安全,请求限速
文章问题导向如何跨域,设置路径前缀?如何让网站更加安全?防止跨站脚本攻击,跨站点请求伪造如何限速?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案跨域,路径前缀,网络安全第一步:安装yarn add helmet csurf第二步:在main.ts中引入使用import { NestFactory } from '@nestjs/core';import { Logger, ValidationPipe } from '@nestjs/common';im原创 2021-04-25 13:22:57 · 1362 阅读 · 0 评论 -
nest学习:数据验证
文章问题导向如何 限制 和 验证 前端传递过来的数据?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案验证方式常用:dto(data transfer object数据传输对象) + class-validator,自定义提示内容,还能集成swagger其他:@hapi/joi,不常用,提示不友好这里主要使用dto的方式第一步:安装yarn add class-validator class-transformer第二步:全局使用内置管道Validatio原创 2021-04-25 12:00:58 · 1228 阅读 · 0 评论 -
nest统一处理数据库操作的查询结果
文章问题导向操作数据库时,如何做异常处理异常? 比如id不存在,用户名已经存在?如何统一处理请求失败和请求成功?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案处理方式:在nest中,一般是在service中处理异常,如果有异常,直接抛出错误,由过滤器捕获,统一格式返回,如果成功,service把结果返回,controller直接return结果即可,由拦截器捕获,统一格式返回失败:过滤器统一处理成功:拦截器统一处理例子controlleruser.cont原创 2021-04-24 22:19:17 · 1697 阅读 · 0 评论 -
nest使用typeorm连接mysql数据库
文章问题导向在nest中,如何使用typeorm连接mysql数据库?如何连接多个数据库?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案第一步:安装相关依赖yarn add typeorm @nestjs/typeorm mysql以及创建相关文件src -> module -> useruser.module.tsuser.service.tsuser.controller.tsuser.entity.ts第二步:引入并配置数据库在a原创 2021-04-22 21:01:42 · 2104 阅读 · 4 评论 -
nest配置抽离
文章问题导向随着项目越来越大,如果都把文件引入配置放在的全局配置中,1.不好管理,2.不够安全。如何抽离配置?更好地管理项目?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案第一步:安装相关依赖yarn add nestjs-config第二步:引入配置app.module.tsimport * as path from 'path';import { Module } from '@nestjs/common';//数据库import { TypeO原创 2021-04-22 20:01:22 · 675 阅读 · 0 评论 -
nest学习6:使用cookie和session
文章问题导向如何使用cookie?如何使用session?它们参数对应的意思是什么?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案使用前注意cookie和session的使用依赖于当前使用的平台,如:express和fastify两种的使用方式不同,这里主要记录基于express平台的用法使用cookie第一步:安装yarn add cookie-parser @nestjs/platform-express第二步:引入-注册main.tsim原创 2021-04-22 04:57:23 · 1072 阅读 · 0 评论 -
nest中实现图片随机验证码
文章问题导向nest如何实现图片随机验证码?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案例如这样,静态,点击随机生成这里使用的是svg-captcha这个库,你也可以使用其他的库第一步:安装svg-captchayarn add svg-captcha第二步:封装,以便使用src -> utils -> tools.service.tsimport { Injectable } from '@nestjs/common';import *原创 2021-04-22 03:56:30 · 1851 阅读 · 0 评论 -
nest学习5:静态资源 - 使用模板引擎
文章问题导向nest如何获取静态资源(images,css,js)?nest如何使用模板引擎?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案如何获取静态资源?第一步:安装平台依赖yarn add @nestjs/platform-express第二步:在main.ts引入配置使用import { NestFactory } from '@nestjs/core';import { AppModule } from './app.module';//引入原创 2021-04-22 00:41:16 · 949 阅读 · 2 评论 -
nest学习3:管道 - 守卫 - 拦截器 - 过滤器 - 中间件 - 装饰器
文章问题导向如何使用管道?如何使用守卫?如何使用拦截器?如何使用过滤器?如何使用中间件?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案分别作用管道:数据处理与转换,数据验证守卫:验证用户登陆,保护路由拦截器:统一响应内容过滤器:异常捕获中间件:日志打印更多使用方式,请了解执行时机再选用适用的方式执行顺序(时机)点击参考该文章使用(注册)方式两种使用方式:局部,全局两种使用类型:内置,自定义全局使用: 管道 - 守卫 - 拦截器 -原创 2021-04-18 00:47:28 · 2511 阅读 · 0 评论 -
nest学习2:接口路由搭建
文章问题导向如何搭建路由?如何获取请求参数?如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案首先,先设计几个Restful Api接口,用户的增删改查,以这几个接口学习路由假设网址:http:localhost:8000/http:localhost:8000/user?limit=5&offset=5 get请求,分页获取用户,需要获取query查询字符串参数http:localhost:8000/user/1 get请求,根原创 2021-04-13 07:05:39 · 855 阅读 · 0 评论