首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    精读《Nestjs》

    精读 《Nestjs 文档》 本期精读的文章是:Nestjs 文档 体验一下 nodejs mvc 框架的优雅设计。...2.3 模块间依赖注入 Modules, Controllers, Components 之间通过依赖注入相互关联,它们通过同名的 @Module @Controller @Component 装饰器申明...3.1.1 定义实体 每个实体对应数据库的一张表,Typeorm 在每次启动都会同步表结构到数据库,我们完全不用使用数据库查看表结构,所有结构信息都定义在代码中: @Entity() export class...3.1.2 自动校验 光判断参数类型是不够的,我们可以使用 class-validator 做任何形式的校验: @Column({ comment: '配置 JSON', length: 5000,...,需要校验所有字段,但更新实体时,由于性能需要,我们一般不会一次查询所有字段,就需要指定更新时,不校验没有赋值的字段,我们通过 Typeorm 的 EventSubscriber 完成数据库操作前的代码校验

    4.7K20

    学完这篇 Nest.js 实战,还没入门的来锤我!(长文预警)

    操作数据库, 首先我们要安装以下依赖包: npm install @nestjs/typeorm typeorm mysql2 -S 官方提供了两种连接数据库的方法, 这里分别介绍一下: 方法1 首先在项目根目录下创建两个文件...官网查看 import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; @Module...CRUD 好了,接下来就进行数据操作,前面我们说通过代码来建表, TypeORM是通过实体映射到数据库表,所以我们先建立一个文章实体PostsEntity,在posts目录下创建posts.entity.ts...autoLoadEntities: true, }),] 自动加载我们的实体,每个通过forFeature()注册的实体都会自动添加到配置对象的entities数组中, forFeature()就是在某个...entities: ['dist/**/*.entity{.ts,.js}'], }),] 通过配置的路径, 自动去导入实体。

    17.6K76

    使用NestJs、GraphQL、TypeORM搭建后端服务

    可以理解为依赖注入。 他们的值都为一个数组,方便添加多个模块功能。...我们先来将TypeORM相关依赖添加到项目,依赖包括三部分,分别是NestJs支持TypeORM的依赖包@nestjs/typeorm,TypeORM本身typeorm,数据库支持MySQL。...image.png 3.2、改造app.module.ts 从@nestjs/typeorm中引入NestJs与TypeORM连接模块*TypeOrmModule,然后传入一个Object作为与数据库链接的...现在保存文件,我们将会得到一个错误,因为TypeORM生成数据库表的时候至少需要一个实体Entity文件。...现在我们来src/modules/pokemon目录下创建实体文件pokemon.entity.ts。TypeORM的基本方法了解: Entity:实体装饰器,将一个类声明为一个实体。

    7.6K10

    有了 Prisma,就别用 TypeORM 了

    findOne(undefined) 所查询到的却是第一条记录​ 首先 TypeORM 有个天坑,你可以在 这个 Issue 中查看详情或查看 这篇文章 是如何破解使用 TypeORM 的 Node.js...userRepository: Repository 实体一多,要注入的 Repository 也就更多,无疑不是对开发者心智负担的加深。...然后在 service 上,注入 PrismaService 后,就可以通过 this.prisma[model] 来调用模型(实体) ,就像这样 import { Injectable } from...创建实体​ 在 TypeORM 中,假设你要创建一个 User 实体,你需要这么做 const newUser = new User() newUser.name = 'kuizuo' newUser.email...TypeORM 有种被 nestjs 深度绑定的模样,一提到 TypeORM,想必第一印象就是 Nestjs 中所用到的 ORM 框架。

    4.5K22

    学完这篇 Nest.js 实战,还没入门的来锤我!(长文预警)

    操作数据库, 首先我们要安装以下依赖包: npm install @nestjs/typeorm typeorm mysql2 -S 复制代码 官方提供了两种连接数据库的方法, 这里分别介绍一下: 方法...官网查看 import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; @Module...CRUD 好了,接下来就进行数据操作,前面我们说通过代码来建表, TypeORM是通过实体映射到数据库表,所以我们先建立一个文章实体PostsEntity,在posts目录下创建posts.entity.ts...autoLoadEntities: true, }),] 复制代码 自动加载我们的实体,每个通过forFeature()注册的实体都会自动添加到配置对象的entities数组中, forFeature(...entities: ['dist/**/*.entity{.ts,.js}'], }),] 复制代码 通过配置的路径, 自动去导入实体。

    12.1K11

    TypeORM用法浅析

    本文以nestjs框架为例,nestjs和typeorm有着紧密的集成,提供了开箱即用的@nestjs/typeorm,更方便地进行数据库的连接,实体管理和依赖注入,详细可查看文档Database。...有了@nestjs/typeorm的帮助,在service中进行数据操作变得更为便捷高效,主要集中在Repository和EntityManager两种API上。2....Repository注入每个实体都有自己的Repository存储库,当你要操作具体的某个实体的数据时,使用@injectRepository装饰器来注入对应实体的Repository,可以直接使用Repository...多表联查TypeORM官方文档中,实体关系实际上是通过mysql的外键实现的,先在entity实体代码上添加关系,再使用leftJoinAndSelect等进行关联查询。...参考开始入门 | TypeORM 中文文档Database | NestJS - A progressive Node.js framework做个图书借阅系统(2) 数据库设计深入探讨:为何避免使用外键与级联操作

    1.2K21

    NestJS折腾记- (0) 开胃菜, TypeORM 连接远程的MySQL(ssh tunnel)及Linux信息过滤裁切基础

    其他就不多说了 官网 | NestJS迭代计划(roadmap) ---- 效果图 失败 失败的原因有那么几个; 数据库的配置信息跟实际要链接的数据库数据不一致(比如数据库名字,比如用户名密码) 隧道转发的端口给本地其他服务占用了...---- 代码 db.ts(src/config) 温馨提示: 若是要用__dirname,确保配置文件在根目录,否则请改用相对路径,不然会找不到实体 synchronize是同步,会自动同步到数据库,.../modules/users/users.module'; // 数据库ORM import { TypeOrmModule } from '@nestjs/typeorm'; import { MySqlConfig...timestamp') updated_at: number; // 是否启用 @Column('int') admin_status: number; } 复制代码 剩下的姿势,就在services里面注入实体和...orm的Repository; 再到controller注入服务调用即可...返回的是Promise ---- 要点提示及温馨提示 SSH隧道转发(SSH Tunnel) 远程数据库我们一般不暴露外接端口直连

    2.2K30

    Dotenv在nestjs中的使用

    在nestjs中使用环境变量, 推荐使用官方提供的@nestjs/config,开箱即用: @nestjs/config依赖于dotenv,可以通过key=value形式配置环境变量,项目会默认加载根目录下的...首先安装对应npm包 配置环境变量文件 定义读取环境变量的函数 配置@nestjs/config的方法 首先安装@nestjs/config 配置环境变量文件,配置两个文件,一个用于开发环境,一个用于生产环境...@nestjs/config的方法 import { TypeOrmModule } from '@nestjs/typeorm'; import { ConfigService, ConfigModule...synchronize: true, //根据实体自动创建数据库表, 生产环境建议关闭 }), }), PostsModule, ], ... })...那么如何读取process.env呢?直接调用configService的get方法,get方法第一个参数是环境变量属性,第二个参数为默认值。

    18K42

    NestJS 入门到实战 前端必学服务端新趋势无密分享

    本文将从技术演进、核心优势、实战场景三个维度,解析 NestJS 如何重塑服务端开发范式。...NestJS 的分层架构(中间件→守卫→拦截器→管道→控制器→服务)恰好满足这种高并发、低时延场景需求。...依赖注入的解耦魔力通过 DI 容器自动管理组件生命周期,NestJS 实现了真正的控制反转。...三、实战场景:从0到1构建企业级应用用户认证模块开发采用 JWT + Redis 方案实现无状态认证:守卫层验证 token 有效性拦截器层记录用户操作日志服务层通过 TypeORM 处理数据库操作某社交平台实践显示...、@Module)进阶阶段(3-4周)深入依赖注入系统工作原理实践分层架构(守卫/管道/拦截器)集成数据库(TypeORM/Mongoose)实战阶段(5-8周)开发完整用户认证系统实现 RESTful

    34110

    混搭 TypeScript + GraphQL + DI + Decorator 风格写 Node.js 应用

    但是可以初始化多个连接,比如用于多个数据库连接或读写分离 默认配置项 defaultOptions 中的 entities 表示数据库实体对象存放的路径,推荐专门创建一个 entity 目录用来存放:...其次,在 Midway 的配置文件中指定数据库连接配置: // src/config/config.default.ts export const typeorm = { type: 'mysql...(*.d|base){.js,.ts}`], } 说明: 因为要区分线上环境运行和本地开发,所以需要配置两份 entities的配置项本地和线上配置是不同的,本地直接用 src/entity 就行,...分页(Pagination) 功能为案例来演示在如何在 Midway 框架里使用 GraphQL,以及如何应用上述这些装饰器 。...小结 距离上次写 Node.js 后台应用有段时间了,当时的技术栈和现在的没法比,现在尤其得益于使用 Decorator(装饰器语法) + DI(依赖注入)风格写业务逻辑,再搭配使用 typeorm (

    3.9K20
    领券