最近在写项目时,使用mongodb数据库做查找,通过find()方法查找后,返回的数据为一个数组。按照之前的想法是直接使用if判断其为true或者false来确认该数据是否为空,但结果都出现问题。经过查找发现,Array数组类型即使在内部没有数据时,也是一个Object。既然是Object,用于判断条件时,就会被转化为true。下附错误代码:
const isDuplicate = await ctx.service.userService.find({ nickName }); //查询昵称是否注册
if (isDuplicate) {
ctx.body = {
code: 10001,
msg: "昵称已被注册",
};
} else {
// 调用service层进行更新数据库
await ctx.service.userService.update({
id: id,
updateUserINfo: { nickName, passWord, avaterUrl, phoneNum },
});
ctx.body = {
code: 0,
msg: "信息修改成功",
};
}
其中一种解决方法:
const isDuplicate = await ctx.service.userService.find({ nickName }); //查询昵称是否注册
if (isDuplicate.length !==