【问题标题】:How we can add prisma middleware in different file?我们如何在不同的文件中添加 prisma 中间件?
【发布时间】:2021-07-28 19:05:11
【问题描述】:

我有多个中间件用于单个路由。我可以分解代码并将中间件移动到不同的文件中吗?我尝试在服务器文件中导入中间件,但它不起作用

【问题讨论】:

  • 您能否提供更多详细信息或您迄今为止尝试过的代码 sn-ps?否则很难调试或猜测可能出了什么问题。
  • import bcrypt from 'bcryptjs' import { PrismaClient, Prisma } from '@prisma/client' const prisma: PrismaClient = new PrismaClient() prisma.$use(async (params: Prisma.MiddlewareParams, next ) => { if (params.action == 'create' && params.model == 'User') { let user = params.args.data let salt = bcrypt.genSaltSync(10) let hash = bcrypt.hashSync(user .password, salt) user.password = hash } return await next(params) }) 我尝试在项目的中间件目录中添加并希望在创建新用户期间运行。
  • 如果可能,请更新原始问题,这样的回复很难阅读代码。此外,如果可能,请提供所有相关代码(以及与之关联的文件)。例如:中间件的代码,调用中间件的路由/控制器的代码。等等

标签: middleware prisma prism-4


【解决方案1】:

尝试像这样添加

import bcrypt from 'bcryptjs'
import { PrismaClient, Prisma } from '@prisma/client'

const prisma: PrismaClient = new PrismaClient()

prisma.$use(async (params: Prisma.MiddlewareParams, next) => {
    if (params.action == 'create' && params.model == 'User') {
        let user = params.args.data
        let salt = bcrypt.genSaltSync(10)
        let hash = bcrypt.hashSync(user.password, salt)
        user.password = hash
    }
    return await next(params)
})

【讨论】:

  • 我把这段代码放在 Nestjs 的 main.ts 文件中,但它不起作用
猜你喜欢
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 2019-05-27
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
相关资源
最近更新 更多