首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

精读《Prisma 的使用》

@updatedAt 修饰字段用来存储上次更新时间,一般是数据库自带的能力。 @ignore 对 Prisma 标记无效的字段。...数据库多对多关系一般通过第三张表实现,第三张表会存储两张表之间外键对应关系,所以如果要显式定义其实是这样的: model Post { id Int...$queryRaw( Prisma.sql`SELECT * FROM User WHERE email = ${email}` ) 中间件 Prisma 支持中间件的方式在执行过程中进行拓展,看下面的例子...1 2 3 4 5 6 可以看到,中间件执行顺序是洋葱模型,并且每个操作都会触发。我们可以利用中间件拓展业务逻辑或者进行操作时间的打点记录。...prisma 这个顶层变量,使用起来会非常方便,另外从 API 拓展上来说,虽然 Mongoose 设计得更简洁,但添加一些条件时拓展性会不足,导致结构不太稳定,不利于统一记忆。

3.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Nest.js 实战 (九):使用拦截器记录用户 CURD 操作日志

    它们可以:在函数执行之前/之后绑定额外的逻辑转换从函数返回的结果转换从函数抛出的异常扩展基本函数行为根据所选条件完全重写函数 (例如, 缓存目的)创建 Prisma 模型在 schema.prisma...文件中添加 Log 模型:// Log - methodenum Method { GET POST PATCH DELETE}// 系统管理 - 操作日志model Log { id...创建 Module 模块这里我们需要用到 Session 保存的用户数据,但 Service 中是不能直接获取 Session 的,我们需要注入作用域,以此来获取请求中的上下文。...== 'GET') || isLogin) { if (isLogin) { // 查询数据库中对应的用户 userInfo = await this.prisma.user.findUnique...效果演示总结这个功能本来一开始我是想使用 中间件 来开发的,后来不管怎么折腾,中间件 的 Request 上下文始终获取不到 Session,但 拦截器 也不失是一种好方法。

    22710

    Next.js 实战 (九):使用 next-auth 完成第三方身份登录验证

    它简化了为你的应用程序添加身份验证(如登录、注册、登出等)的过程。...适配器支持:对于想要将用户数据持久化到数据库中的情况,next-auth 提供了适配器(adapters),可以方便地与不同的数据库系统进行集成,比如 Prisma、TypeORM 等。...运行以下命令随机生成一个:npx auth secret这也会将其添加到本地的 .env 文件中3、 配置在应用的根目录下创建一个新的 auth.ts 文件,包含以下内容:import NextAuth...:import { handlers } from "@/auth" // Referring to the auth.ts we just createdexport const { GET, POST...适配器使得 next-auth 可以与不同的数据库系统进行交互,以便存储和检索用户信息、会话数据以及其他相关的认证信息,下面以 Prisma 为例1、 安装软件包pnpm add @prisma/client

    16310

    Nuxt3全栈开发 · 配置篇

    和文章有一致的表现,也可以通过tailwindcss自定义样式prisma 管理数据库(sqlite3)gitea 管理代码仓库(私有)。...app.vue will cause unwanted layout shifting in your application.原因是,原代码从 pages/[slug].vue 改为 pages/post...并且支持自己编写然后覆盖这些组件预设,在 components/content 目录下新建一个同名的组件,如 ProseA.vue : 中,大家都是手动引入包内的解析函数 这就是用的晚的好处吧 ~样式表现和文章解析出来一模一样,如果想自定义,就用 mdc-memo-prose 去添加。...登录、注册、用户分组文章、动态支持评论文章、动态支持分享(图片、短链接)图片上传(cos)其中涉及到大量对 Nitro 的探索,鉴权、中间件、数据库等等。

    8300

    使用 NextJS 和 TailwindCSS 重构我的个人博客

    第三版:NextJS + TailwindCSS + Postgresql 优点: 服务端渲染(SSR) + 静态生成, 访问速度极快,全新 UI 支持换肤; TailwindCSS 在国外如火如荼...4、之前写了《使用 CSS variables 和Tailwind css实现主题换肤》也运用到了我的博客中。...而文章内容写完之后是通常不变的,所以可以先将页面静态存储在服务器上,这样就可以大大减小数据库压力。 getStaticProps 在构建时请求数据。...prisma —— 下一代 ORM 框架 Nodejs 框架访问数据库,往往会需要一个ORM 框架来帮我们管理数据层代码,而在 Node.js 社区中,sequelize、TypeORM 等框架都被广泛应用...Prisma 是一种新的 ORM,它缓解了传统 ORM 的许多问题,例如: 模型实例的膨胀、业务与存储逻辑的混合、缺乏类型安全性或由延迟加载引起的不可预测查询。

    2.7K20

    使用 NextJS 和 TailwindCSS 重构我的博客

    但前台页面定制需要覆盖样式; 第三版:NextJS + TailwindCSS + Postgresql 优点: 服务端渲染(SSR) + 静态生成, 访问速度极快,全新 UI 支持换肤; TailwindCSS 在国外如火如荼...4、之前写了《使用 CSS variables 和 Tailwind css 实现主题换肤》也运用到了我的博客中。...而文章内容写完之后是通常不变的,所以可以先将页面静态存储在服务器上,这样就可以大大减小数据库压力。 getStaticProps 在构建时请求数据。...prisma —— 下一代 ORM 框架 Nodejs 框架访问数据库,往往会需要一个 ORM 框架来帮我们管理数据层代码,而在 Node.js 社区中,sequelize、TypeORM 等框架都被广泛应用...Prisma 是一种新的 ORM,它缓解了传统 ORM 的许多问题,例如: 模型实例的膨胀、业务与存储逻辑的混合、缺乏类型安全性或由延迟加载引起的不可预测查询。

    2.4K20

    Typescript 全栈最值得学习的技术栈 TRPC

    Done in 81ms 这会将数据库与 prisma 的 schema 同步,说人话就是将数据库的表与 schema.prisma 文件中的 model 对应。...prisma.modelName 来操作 model,例如 Example(这里就不做注释了) import { prisma } from "~/server/db"; prisma.post.findUnique...({ where: { id: 1 } }); prisma.post.create({ data: {} }); prisma.post.update(id, { data: {} }); prisma.post.delete...该库提供了多种身份验证策略,如基于密码的身份验证,OAuth 等等。并且你只需要简单的几行代码,提供好相关信息便可启用身份验证和授权功能。...警告 不过要注意,Vercel 并不提供文件读写操作,即无法实现数据存储,因此你如果需要提供数据读取的操作,那么普通需要一个远程的数据库服务,将 DATABASE_URL 环境变量替换成线上地址。

    3.3K51

    2024年Node.js精选:50款工具库集锦,项目开发轻松上手(四)

    Prisma的使用相对直观。以下是一些基本的代码示例,展示了如何在项目中定义模型、获取数据、创建和更新数据: 1. 定义模型 在prisma/schema.prisma文件中定义你的数据模型。...以下是添加一个新用户的示例代码: const newUser = await prisma.user.create({ data: { name: 'Alice', email: '...Winston的核心特点 Winston库的设计充分考虑了灵活性和通用性,以下是其一些核心优点: 多种传输机制:允许将日志信息输出到多个目的地,如控制台、文件系统、云服务等。...为了防御这种攻击,Express-rate-limit应运而生,它是一个专为Express.js应用设计的中间件,用于强制执行请求速率限制,确保控制进入流量,保护资源不被滥用。...多种存储选项:支持内存、Redis等多种存储方式,用于持久化数据。 自定义响应:允许为达到速率限制的请求定制响应消息。 如何使用Express-rate-limit?

    32410

    Typescript 全栈最值得学习的技术栈 TRPC

    Done in 81ms这会将数据库与 prisma 的 schema 同步,说人话就是将数据库的表与 schema.prisma 文件中的 model 对应。...来操作 model,例如 Example(这里就不做注释了)import { prisma } from "~/server/db";prisma.post.findUnique({ where: {...id: 1 } });prisma.post.create({ data: {} });prisma.post.update(id, { data: {} });prisma.post.delete(...id);prisma.post.count();数据迁移我之前如果做数据库备份的话,我通常会在数据库管理软件(Navicat)将整个数据库转储为 SQL 文件,然后要用的时候在运行该 SQL 文件。...:::caution不过要注意,Vercel 并不提供文件读写操作,即无法实现数据存储,因此你如果需要提供数据读取的操作,那么普通需要一个远程的数据库服务,将 DATABASE_URL 环境变量替换成线上地址

    2K20

    写在 2021: 值得关注学习的前端框架和工具库

    Node应用上(我就是使用这种方式来同时提供REST和GraphQL两套API的,但需要注意某些中间件的配置需要ignore掉挂载的路径) GraphQL-Yoga[43],Prisma团队出品,基于Apollo-Server...还提供了中间件(注意和服务端框架的中间件区分)、鉴权(推荐GraphQL API的鉴权只使用它提供的)、扩展、指令、联合类型等。作者也很厉害,提供了和NestJS以及Prisma各自的集成包。...在TS中这个工具的主要能力就是生成TS的类型定义,同时它的插件体系还提供了更多的额外能力,如Apollo-Client的插件,让你可以直接使用封装好的的useXXXQuery等,前端连查询语句都不用写了...Redux-Observable[91], Redux的RxJS中间件。 Reactive.How[92],生动的展示RxJS Observable在操作符管道中的流动,入门期间使用有奇效。...Husky[99],快速配置Git Hooks,多人团队协作中确保规范的重要手段,通常会这样使用:pre-commit执行linter和prettier,commit-msg检查commit信息,pre-push

    4.2K10

    有了 Prisma,就别用 TypeORM 了

    我举几个例子: 在 TypeORM 中,你需要 select 选择某个实体的几个字段,你可以这么写 你会发现 post 对象的类型提示依旧还是 postEntity,没有任何变化。...**而后续代码中由于允许 post 有 body 属性提示,那么 post.body 为 null 这样不必要的结果。...再来看看 Prisma,你就会发现 post 对象的类型提示信息才符合开发者的预期。像这样的细节在 Prisma 有非常多。...** 举个例子,可以为 schema.prisma 添加一条 generator,长下面这样 generator client { provider = "prisma-client-js" output...在应用程序代码中,您可以使用 Prisma Client 以类型安全的方式读取和写入数据库中的数据,而无需管理复杂模型实例的开销。

    2.7K22

    如何盘点出掘金的年度高赞文章?

    前言 各位掘友,新年好,今天是 2022 年的第一天,掘金的人气作者投票活动如火如荼,榜单已经落幕,当然跟我半毛钱关系都没有,我的新年 Flag ,就是掘金等级到达 V4,而对于绝大多数读者来说,新年...Flag 中是否有“学习”这一项呢,对于我来说,我也是,于是就有萌生一个想法,我想统计出掘金的年度高赞文章。...userId = [] const fetchUserId = (cursor = 0) => { console.log('请求第' + cursor + '页') axios .post...image.png 建表统计 接下来我们要统计数据了,这么大的数据量,我们不可能用 json 存储,我这边选用了 psql, ORM 选用了 prisma,不了解的同学可以看我之前的翻译文章《适用于 Node.js...userId) return new Promise((reslove) => { setTimeout(async () => { await axios .post

    55720

    如何盘点出掘金的年度高赞文章?

    前言 各位掘友,新年好,今天是2022年的第一天,掘金的人气作者投票活动如火如荼,榜单已经落幕,当然跟我半毛钱关系都没有,我的新年 Flag ,就是掘金等级到达 V4,而对于绝大多数读者来说,新年 Flag...中是否有“学习”这一项呢,对于我来说,我也是,于是就有萌生一个想法,我想统计出掘金的年度高赞文章。...let userId = []; const fetchUserId = (cursor = 0) => { console.log("请求第" + cursor+'页'); axios.post...建表统计 接下来我们要统计数据了,这么大的数据量,我们不可能用 json 存储,我这边选用了 psql, ORM 选用了 prisma,不了解的同学可以看我之前的翻译文章《适用于Node.js和TypeScript...userId); return new Promise((reslove) => { setTimeout(async () => { await axios .post

    82920

    写在2021: 值得关注学习的前端框架和工具库

    Node应用上(我就是使用这种方式来同时提供REST和GraphQL两套API的,但需要注意某些中间件的配置需要ignore掉挂载的路径) GraphQL-Yoga,Prisma团队出品,基于Apollo-Server...还提供了中间件(注意和服务端框架的中间件区分)、鉴权(推荐GraphQL API的鉴权只使用它提供的)、扩展、指令、联合类型等。作者也很厉害,提供了和NestJS以及Prisma各自的集成包。...在TS中这个工具的主要能力就是生成TS的类型定义,同时它的插件体系还提供了更多的额外能力,如Apollo-Client的插件,让你可以直接使用封装好的的useXXXQuery等,前端连查询语句都不用写了...Redux-Observable, Redux的RxJS中间件。 Reactive.How,生动的展示RxJS Observable在操作符管道中的流动,入门期间使用有奇效。...Husky,快速配置Git Hooks,多人团队协作中确保规范的重要手段,通常会这样使用:pre-commit执行linter和prettier,commit-msg检查commit信息,pre-push

    2.9K10

    移动应用AI化成新战场?详解苹果最新Core ML模型构建基于机器学习的智能应用

    归根结底是SnapChat在青少年人群中的流行,是Prisma在去年的异常火爆,是在国内一直被人刷屏的各类美颜照片应用……只要找对场景,有AI加持的移动应用总能脱颖而出。...如何在应用中添加并使用Core ML模型?...以用来预测火星殖民地价格的已训练模型 MarsHabitatPricer.mlmodel 为例: 首先需要把模型添加到 Xcode 项目中: 也就是将模型拖进项目导航器 (project navigator...毕竟,Google不做移动芯片,如何在硬件层面为手机上的AI应用做优化,就成了它绕不过去的问题:是跟高通的Neural Processing Engine合作?还是把自家的TPU小型化?...至于Caffe2,Facebook将如何在系统层面为AI应用做优化,则是一个非常有趣的问题。 诚如Gartner所言,当AI变成科技行业的主战场时,这里的事情就有意思多了。

    2K70
    领券