为什么我无法收到服务器的回复

时间:2019-08-18 04:54:55

标签: javascript ajax express

我正在使用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);
    }
})
    });

0 个答案:

没有答案