Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法获取express.js响应_Javascript_Jquery_Express - Fatal编程技术网

Javascript 无法获取express.js响应

Javascript 无法获取express.js响应,javascript,jquery,express,Javascript,Jquery,Express,我试图根据服务器响应的内容以不同的方式处理它,但我甚至不能运行与响应数据无关的东西 以下是我在jQuery中的请求: 功能寄存器{ var form=$'signup-form' $.posthttp://localhost:3000/register,form.serialize,data=>console.log1 .donedata=>console.log2 .faildata=>console.log3 .alwaysdata=>console.log4; } 简而言之: rota.p

我试图根据服务器响应的内容以不同的方式处理它,但我甚至不能运行与响应数据无关的东西

以下是我在jQuery中的请求:

功能寄存器{ var form=$'signup-form' $.posthttp://localhost:3000/register,form.serialize,data=>console.log1 .donedata=>console.log2 .faildata=>console.log3 .alwaysdata=>console.log4; }

简而言之:

rota.post('/register', (req, res) => {
const name = req.body.name;
const age = req.body.age;
const pass = sha256(req.body.pass);
const request = new sql.Request();
request.query(`SELECT CAST(CASE WHEN EXISTS(SELECT * FROM Usuario WHERE username = '${name}') THEN 1 ELSE 0 END AS BIT) AS re`).then(
    result => {
        if (result.recordset[0].re == true) {
            console.log("usuário já registrado");
            res.send("1");
        } else {
            request.query(`INSERT INTO Usuario(username, userage, userpass) VALUES('${name}', '${age}', '${pass}')`);
        }
    }).catch(result => {})
})
我做错了什么?

返回状态以完成请求,否则它将保持打开状态。在catch块中插入400状态响应,让前端知道请求已失败,并进入fail函数:

request.query`SELECT CASTCASE WHEN EXISTSSELECT*FROM Usuario,其中username='${name}',然后1或0结束位为re`。然后 结果=>{ 如果result.recordset[0].re==true{ 控制台:洛古苏里奥·查多; 第1项决议; }否则{ 查询`插入USUARIONUSERNAME、userage、userpass值'${name}','${age}','${pass}'; res.status200.send;//此处添加状态200表示成功 } }.catchresult=>{ res.status400.send;//还发送400状态响应以响应信号故障 }
}我不知道这个sql.Request对象是如何工作的,但代码的其他部分从未将任何内容发送回响应,这似乎有点可疑。如果您只是想表示它成功,请至少使用res.sendStatus200。@Jeto我应该将其插入到else中吗?另外,我很确定sql.Request没有问题,至少在其查询方法上没有问题,因为在这种情况下,它同时执行console.log和下一个查询。是的,在任何情况下都应该发送响应。