在未定义值的情况下使用 prisma findFirst() 时如何不 return 值
How to not return a value when using prisma findFirst() where the value is undefined
我正在使用新数据库,因为我认为它使用起来很方便,但是当用户注销时,req.session.userId
将是未定义的。因此,当我将 findFirst()
函数与 { where : req.session.userId }
一起使用时。如果 req.session.userId
未定义。 findFirst()
仍然是 return 第一条记录 table。
当 req.session.userId
未定义时,如何解决 findFirst()
不能 return 的值。
它有点等同于 MySQL 查询命令。
SELECT * FROM user WHERE id = req.session.userId;
我的 Prisma 查询代码。
app.use(async (req,res, next)=>{
let user
user = await database.user.findFirst({where:{
id: req.session.userId
}})
req.user = user
next()
})
在这种情况下,您始终可以选择不调用数据库:
app.use(async (req,res, next)=>{
let user
user = req.session.userId && await database.user.findFirst({where:{
id: req.session.userId
}})
req.user = user
next()
})
只有当 userId 未定义时,您才会调用您的数据库。如果它是未定义的,你的响应将有 user: undefined
,除非你想在这种情况下发送一些其他响应,但你的用户初始值设置应该不同。
app.use(async (req,res, next)=>{
const user = await database.user.findFirst({where:{{
OR : [
{
id: req.session.userId
},
{
id: 'undefined'
}
]
}})
req.user = user
next()
})
我正在使用新数据库,因为我认为它使用起来很方便,但是当用户注销时,req.session.userId
将是未定义的。因此,当我将 findFirst()
函数与 { where : req.session.userId }
一起使用时。如果 req.session.userId
未定义。 findFirst()
仍然是 return 第一条记录 table。
当 req.session.userId
未定义时,如何解决 findFirst()
不能 return 的值。
它有点等同于 MySQL 查询命令。
SELECT * FROM user WHERE id = req.session.userId;
我的 Prisma 查询代码。
app.use(async (req,res, next)=>{
let user
user = await database.user.findFirst({where:{
id: req.session.userId
}})
req.user = user
next()
})
在这种情况下,您始终可以选择不调用数据库:
app.use(async (req,res, next)=>{
let user
user = req.session.userId && await database.user.findFirst({where:{
id: req.session.userId
}})
req.user = user
next()
})
只有当 userId 未定义时,您才会调用您的数据库。如果它是未定义的,你的响应将有 user: undefined
,除非你想在这种情况下发送一些其他响应,但你的用户初始值设置应该不同。
app.use(async (req,res, next)=>{
const user = await database.user.findFirst({where:{{
OR : [
{
id: req.session.userId
},
{
id: 'undefined'
}
]
}})
req.user = user
next()
})