const userPools = [
{ name: 'laoc', password: 123456 },
{ name: 'xchen', password: 123456 },
{ name: 'admin', password: 123456 },
{ name: 'lucy', password: 123456 },
]
Mock.mock(/\api\/login/, 'post', (req: any) => {
let userMsg = JSON.parse(req.body)
let userArry = userPools.filter(item => {
return userMsg.name==item.name
})
if (userArry.length != 0) {
if (userMsg.password == userArry[0].password) {
return {
code: '200',
data: {
msg: '登陆成功',
token:'lao888chenfug48484848'
}
}
} else {
return {
code: '-1',
data: {
msg:'密码错误'
}
}
}
} else {
return {
code: '-1',
data: {
msg:'用户不存在'
}
}
}
})
1.首先自定义一个名为userPools的用户池数组
2.在请求的主体部分,即req.body中获取到用户的登录信息,然后将其解析为一个JSON对象,赋值给userMsg变量。
3.接下来,代码使用了filter方法来筛选一个名为userPools的用户池数组。filter方法会遍历userPools数组的每一项,并根据给定的条件函数来筛选元素。
4.条件函数中,通过比较userMsg.name和数组中每个元素的name属性,来判断是否匹配。这样,返回的结果会是一个包含匹配项的新数组
5.接下来对userArry的长度进行判断,如果userArry的长度不为0,说明用户输入的用户名存在,就可以走下一步了,对密码进行判断
- 首先检查用户提供的密码
userMsg.password
是否与第一个匹配用户的密码相等。- 如果密码匹配,返回一个对象,其中包含状态码
code
为200
,数据对象data
中有一个成功消息msg
和一个登录令牌token
。 - 如果密码不匹配,返回一个对象,其中包含状态码
code
为-1
,数据对象data
中有一个密码错误的消息msg
。
- 如果密码匹配,返回一个对象,其中包含状态码
如果筛选结果为空,即未找到匹配的用户,则返回一个对象,其中包含状态码code
为-1
,数据对象data
中有一个用户不存在的消息msg
。