我需要知道变量user
的行为。
下面的代码运行良好:
var user = await Usuario.findOne({
where:{username:usuario_email}
});
if(!user){
retorno.excecao(res, null, { mensagem: "not found" });
return;
}
但是,当我使用findAll
时,如果该语句不起作用,则两者都不相反(用户== true):
var user = await Usuario.findAll({
where: {[Op.or]: [{email: usuario_email}, {username: usuario_email}]}
//where:{username:usuario_email}
});
if(!user){ //neither if(user) works
retorno.excecao(res, null, { mensagem: "not found" });
return;
}
为什么?
抱歉,我的英语或双语部分不好。
答案 0 :(得分:1)
即使查询结果为空,函数findAll()
仍将返回一个数组-因此变量user
将是一个空数组[]
。
一个空数组仍然是真实的,因此您的if
语句将不起作用。相反,请检查数组的长度。
if (user.length === 0) {
// the query returned empty
}