(1)记录项目开发中关于js数组作为判断条件时出现的问题...

在项目开发中,遇到使用mongodb查询返回的数组作为条件判断时遇到问题。由于JavaScript中,空数组也是Object,因此在if判断时始终为true。解决办法是检查数组长度而非直接用于条件判断。
摘要由CSDN通过智能技术生成

        最近在写项目时,使用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 !==
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值