- 博客(18)
- 收藏
- 关注
原创 NestJS+Vben学习记录-CRUD
本篇文章主要记录user表的CRUD,按需导出。这里涉及到ant-design-vue控件、弹框、输入验证、验证规则、流文件下载、后端按需配置字段下载以及前端后端全部i18n国际化实现。
2025-01-16 14:46:47
496
原创 NestJS+Vben学习记录-项目搭建
这里开始,我将用NestJS框架做后端,Vben框架做前端框架,使用Ant Design Vue UI框架做一个简单的后台系统。
2025-01-10 09:20:24
899
原创 NestJS学习记录-中间件、异常过滤器、拦截器
1、官网地址:NestJS 中文网Nest 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,使用 TypeScript 构建,并结合了 OOP(面向对象编程)、FP(函数式编程)和 FRP(函数式反应式编程)的元素。2、写了一个Logger中间件,主要是要记录请求记录,之前练习的时候做了这个功能,请求过来记录到数据库,由于我新建的项目还没创建这部分表,后面会再补充3、在app.module.ts中 应用中间件。
2025-01-09 19:21:15
939
原创 NestJS学习记录-缓存
当我们调用service的set\mset方法时,会同时往内存和redis中添加缓存,有一个报错就会导致缓存添加不了。网上还搜到一个很不错的实现,是基于@nestjs/common包CacheModule,结合cache-manager包、cache-manager-redis-store包、ioredis包实现的。4、接下来我们就可以测试了,这里顺便提一下,如果本地redis,设置Keyv的Redis连接时,不要使用localhost,要使用127.0.0.1。到这里说明我们的redis就使用成功了。
2025-01-08 11:29:32
1180
原创 NestJS学习记录-JWT认证
使用NodeJS内置的加密模块crypto,使用 AES(高级加密系统)算法 CTR 加密方式。文档地址:NestJS 中文网Nest 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,使用 TypeScript 构建,并结合了 OOP(面向对象编程)、FP(函数式编程)和 FRP(函数式反应式编程)的元素。1、在.env.development配置文件中配置2、在项目中添加一个utils模块,并手动添加一个crypto.service.ts。
2025-01-07 08:49:34
908
原创 NestJS学习记录-DTO验证
NestJS使用class-validator时,是导入内置的ValidationPipe来验证的,nestjs-i18n国际化时验证DTO提供了一个验证管道I18nValidationPipe(继承ValidationPipe),还提供了一个异常过滤器I18nValidationExceptionFilter,这两个结合才能实现验证错误国际化。我这里为了实现这个功能,我自己创建了一个管道,并全局应用。我这里获取到验证错误,根据错误结构,自己做了一下封装,并且根据占位符,替换了一下错误内容。
2025-01-06 13:57:31
781
原创 NestJS学习记录-TypeOrm
它的目标是始终支持最新的 JavaScript 特性并提供额外的特性以帮助你开发任何使用数据库的(不管是只有几张表的小型应用还是拥有多数据库的大型企业应用)应用程序。上面动态模块引入时,logging:true,可以打开,打开以后我们执行sql,在我们控制台就可以看到执行的sql语句。4、此时我们在user.entity.ts文件中加入一些字段,注意这个就是我们的实体类,对应数据库中的表。可以看到我们只获取到id==2的用户,因为我们获取所有用户的时候过滤掉了已经删除的用户。
2025-01-04 17:11:13
1145
原创 NestJS学习记录-Config
接下来几篇文章,我会从新建项目开始,一步一步完成以下几个工作内容。1、NestJS中加载配置文件2、NestJS中使用数据库,使用TypeOrm3、NestJS中使用class-validator和validatorpipe(验证管道)4、NestJS中使用JWT,创建auth.guard(守卫)5、NestJS中使用winston记录日志6、NestJS中使用中间件和拦截器7、NestJS中事件监听器和消息队列8、NestJS中使用缓存。
2025-01-04 15:07:27
637
原创 NestJS学习记录-NestJS任务调度
nestjs/schedule包也提供了动态API,可以帮助我们更加灵活的处理定时任务,主要通过任务的name属性交互处理任务。此导入会初始化调用任务,注册所有代码中已经存在的延期任务(Timeout)、间隔任务(Interval)和其他形式的定时任务。这样我们可以结合我们自己的场景搭建一个单独的任务调度服务,用来处理我们可能遇到的所有定时任务的需求。代码中,针对cron任务,间隔任务,延时任务分别做了增、删、停止(改)、查询。,我们可以看到cron的版本,我们项目中也要安装此版本号的cron包。
2025-01-04 10:24:30
771
原创 NestJS学习记录-i18n国际化、Excel导出
HeaderResolver:['x-lang'],当前端调用时,在headers中添加key:x-lang,value:zh-CN就代表使用简体中文。QueryResolver:['lang'] ,前端调用时,传入lang=zh-CN,就表使用简体中文。在app.module.ts文件中,imports 中添加如上代码,动态导入I18nModule。最后创建一个excel.export模块,一个excel.service服务类。先创建两个Dto,一个用来做导出数据的类,一个用来做excle配置的类。
2025-01-03 17:10:21
1123
原创 Python Django Mongodb
Django 使用Mongodb一、安装mongoengine二、修改setting.py 添加mongoengine connect并且修改 DataBaseDATABASES = { 'default': { 'ENGINE':'django.db.backends.dummy'
2017-12-12 17:36:31
454
原创 redis基础
Redis字符串 string set getset key value 设置指定键的值get key 获取指定键的值getrange key start end 获取存储在键上的字符串的子字符串getset key value 设置键的字符串值并返回其旧值getbit key offset 返回键处存储的字符串中偏移处的位值mget key1 [key2..] 获取所
2017-12-12 17:24:50
320
原创 Django Web(二)
今天我们学习一下Django上传图片的知识 1、 准备工作 a) 配置:在settings.py文件中加入一下配置,用来存放我们上次的图片 MEDIA_URL = ‘/media/’ MEDIA_ROOT = os.path.join(BASE_DIR,’media’) b) 上次控件:我选择了bootstrap-fileinput 在页面加载相应的css,js,这里面用到了boo
2017-09-22 10:44:22
198
原创 Django Web(一)
准备工作:Python 3.6 Django 1.11.4 1、安装Python 2、一款IDE(PyCharm) 3、安装Django (可以用PyCharm安装需要的模块,步骤:File–>Settings–>Project–>ProjectInterperter,会列出Python版本,还有所选版本下面所有安装的模块) 4、创建一个项目两种选择一种可以用django-admin cre
2017-09-12 16:51:54
404
原创 Django 静态文件引用
Django版本1.11 Python版本3.6整个项目目录如下:步骤:1 在项目settings.py 文件配置 STATIC_URL = '/static/'STATICFILES_DIRS=(os.path.join(BASE_DIR, 'static'),)2在模板中引用文件结果如下:注意:一定要清
2017-09-08 16:48:16
265
原创 Ext Viewport水平居中并且滚动
var viewport = new Ext.Viewport({ border: true, autoScroll: true, //layout: { // type: 'vbox', // align: 'center', // pack: 'start'
2017-07-06 15:21:36
369
原创 Ext Viewport水平居中
var viewport = new Ext.Viewport({ //layout: 'form', border: true, layout: { type: 'vbox', align: 'center', pack: 'start' },
2017-07-06 10:46:38
599
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人