// 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: {
},
//输入用户名
inputName: function (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',
duration: 2500
})
}
else {
console.log('登陆成功!')
wx.showToast({
title: '登陆成功!!',
icon: 'success',
duration: 2500
})
wx.switchTab({
url: "../index/index",
})
}
}
else {
console.log("ture"); //不存在
wx.showToast({
title: '无此用户名!!',
icon: 'success',
duration: 2500
})
}
}
}
})
},
register() {
wx.navigateTo({
url: '/pages/register/register'
})
}
})
for (let i = 0; i < user.length; i++) { //遍历数据库对象集合
在这里我在虽然代码没有写但是我在FOR循环前写了一个console.log,能打印出信息
但for循环之后的所有if出口我所写的console.log都没打印出信息,这个for循环很大可能是没有运行,但我不知道为什么,希望大佬能帮萌新解答一下
这是调试器上的错误信息,如同所示,打印到三十五行为之,进不去for循环
你这个登录逻辑有点奇葩呀
取所有记录来遍历?
//登陆 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 }) }) }
若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人