【发布时间】:2021-09-24 16:01:33
【问题描述】:
我正在制作一个 NodeJS 身份验证应用程序。
情况:用户输入用户名,如果用户名被占用,它将显示“用户名被占用”,否则将显示“用户名可用”
我想知道我在下面实现的方法的缺点:
用户名输入栏
<input type="text" name="userName" placeholder="Username" required="" onkeyup="checkUsername(this.value)">
所以每次用户输入字母时,都会调用 checkUsername() 函数!
检查用户名功能
function checkUsername(data){
$( document ).ready(function(){
$.ajax({
url: '/register/checkUsername',
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({user_name:data}),
success: function(new_data) {
if(new_data == 'available'){
//By Default the messages are hidden!
document.getElementsByClassName('user-name-taken')[0].style.display = 'none'
document.getElementsByClassName('user-name-available')[0].style.display = 'block'
} else {
document.getElementsByClassName('user-name-available')[0].style.display = 'none'
document.getElementsByClassName('user-name-taken')[0].style.display = 'block'
}
}
})
})
}
'/register/checkUsername'路由器
async (req,res)=>{
var username = await userModel.findOne({userName:req.body.user_name})
if(!username) {
res.send('available')
} else {
res.send('none')
}
}
这会使网络应用程序变慢吗?还有其他缺点吗?
【问题讨论】:
-
我已经修改了你的问题,所以它更多地是关于事实而不是关于意见。如果您想对代码进行更多审查(按原样运行),您可能需要查看help center 以查看您的问题是否与Code Review 的主题有关。
标签: javascript node.js ajax express mongoose