收藏
回答

为什么我的JS文件进不去FOR循环?

// pages/login/login.js
let app = getApp();
// 获取云数据库引用
const db = wx.cloud.database();
const admin = db.collection('adminlist');
let name = null;
let password = null;


Page({


  /**
   * 页面的初始数据
   */
  data: {


  },
  //输入用户名
  inputNamefunction (event{
  
    name = event.detail.value;
    console.log(name)
  },
  //输入密码
  inputPassword(event) {
    password = event.detail.value
  },
  //登陆
  login() {
    let that = this;
    //登陆获取用户信息
    admin.get({
      success(res) => {
        let user = res.data;
        console.log(user);
        // console.log(res.data);
        for (let i = 0; i < user.length; i++) {  //遍历数据库对象集合
          if (name === user[i].name) { //用户名存在
           
            console.log(name === user[i].name);
            if (password !== user[i].password) {  //判断密码是否正确
              console.log(password !== user[i].password);
              wx.showToast({
                title'密码错误!!',
                icon'success',
                duration2500
              })
            }
             else {
              console.log('登陆成功!')
              wx.showToast({
                title'登陆成功!!',
                icon'success',
                duration2500
              })
              wx.switchTab({
                url"../index/index",
              })
            }
          } 
          else {
            console.log("ture");   //不存在
            wx.showToast({
              title'无此用户名!!',
              icon'success',
              duration2500
            })
          }
        }
      }
    })
  },
  register() {
    wx.navigateTo({
      url'/pages/register/register'
    })
  }
  })



 for (let i = 0; i < user.length; i++) {  //遍历数据库对象集合


在这里我在虽然代码没有写但是我在FOR循环前写了一个console.log,能打印出信息

for循环之后的所有if出口我所写的console.log都没打印出信息,这个for循环很大可能是没有运行,但我不知道为什么,希望大佬能帮萌新解答一下

这是调试器上的错误信息,如同所示,打印到三十五行为之,进不去for循环

回答关注问题邀请回答
收藏

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-05-20

    你这个登录逻辑有点奇葩呀

    取所有记录来遍历?

    //登陆
    login() {
     let that = this;
      admin.where({
        name
      }).get().then(res=>{
       if(res.data.length){
         if(res.data[0].password !== password){
           wx.showToast({ title: '密码错误!!', icon: 'none', duration: 2500 })
         }else{
           wx.showToast({ title: '登陆成功!!', icon: 'success', duration: 2500 })
           wx.switchTab({ url: "../index/index", })
         }
       }else{
         wx.showToast({ title: '无此用户名!!', icon: 'none', duration: 2500 })
       }
      }).catch(e=>{
        console.error(e)
        wx.showToast({ title: '系统错误,请重试!!', icon: 'none', duration: 2500 })
      })
    }
    

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    2020-05-20
    有用 1
    回复 3
    • Hall of fame
      Hall of fame
      2020-05-20
      新手第一次做登录模块,不知道还有更好的办法,不麻烦的话,请大佬讲讲呗
      2020-05-20
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-05-20回复Hall of fame
      自己看上面的代码吧
      2020-05-20
      回复
    • Hall of fame
      Hall of fame
      2020-05-20
      谢谢大佬
      2020-05-20
      回复
  • 方浩源(13112383813)
    方浩源(13112383813)
    2020-05-20
    i < user.length这个判断条件反了
    
    
    2020-05-20
    有用
    回复 3
    • Hall of fame
      Hall of fame
      2020-05-20
      好像并不是哦,这个条件应该没错
      2020-05-20
      回复
    • 方浩源(13112383813)
      方浩源(13112383813)
      2020-05-20回复Hall of fame
      你如果没啥特别需求,直接调微信自带的登录功能就好,获取数据还方便
      2020-05-20
      回复
    • Hall of fame
      Hall of fame
      2020-05-20
      谢谢,问题解决了
      2020-05-20
      回复
登录 后发表内容
问题标签