我正在使用ExpressJS,Ajax和MongoDB构建一个简单的登录/注册系统 我目前停留在注册部分,我希望每当用户单击注册按钮时,电子邮件,帐户和密码都会发送回服务器,然后服务器将检查该帐户是否已经存在并创建用户部分
if(psw===pswRe)
{
// send uname psw and email to server;
var user = '' + 'uname=' + window.encodeURIComponent(uname) + '&psw=' + window.encodeURIComponent(psw) + '&email=' + window.encodeURIComponent(email);
var xhttp = new XMLHttpRequest();
console.log(user);
xhttp.open('POST','/signup',true);
xhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhttp.send(user);
xhttp.onreadystagechange = function() {
if(this.readyState==4 && this.status==200) {
console.log(this.responseText);
}
if(this.readyState==4&&this.status==100) {
console.log(this.responseText);
}
}
}
这是问题所在,服务器端接收了用户,但随后其响应未在客户端调用“ onreadystagechange”功能,因此客户端控制台中基本上没有任何显示。 这是我的服务器端代码:
app.post('/signup',(req,res)=> {
User.findOne({$or:[{username:req.body.uname},{email:req.body.email}]},function(err,result){
if(err) throw err;
if(result==null)
{
var userData = {
username:req.body.uname,
password:req.body.psw,
email:req.body.email
}
User.create(userData,function(err,user) {
if (err)
throw err;
console.log('account created');
})
res.sendStatus(100);
}
else
{
console.log('username already exists');
res.sendStatus(201);
}
})
});