javascript - 无法获得 express.js 响应

标签 javascript jquery express

我正在尝试根据其内容以不同的方式处理服务器响应,但我什至无法运行与响应数据无关的东西。

这是我在 jQuery 中的请求:

函数注册(){ var form = $('#signup-form') $.post("http://localhost:3000/register", form.serialize(), (data) => console.log("1")) .done((data) => console.log("2")) .fail((data) => console.log("3")) .always((data) => console.log("4")); }

在 express 中:

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 block 中插入一个400 状态响应,让前端知道请求失败并进入fail() 函数:

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}')`);
            res.status(200).send();  // here add a status of 200 to signal success
        }
    }).catch(result => {
       res.status(400).send();  // send also a 400 status response to signal failure
    })
})

关于javascript - 无法获得 express.js 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53132418/

相关文章:

javascript - 如何使Parse中的save函数以同步方式工作

javascript - 如何使for循环动态化?

javascript - 提交按钮无法使用 JavaScript 验证表单

javascript - 页面加载时的 JWT 身份验证

node.js - 如何让 nginx 使用 express 来利用 http2

mongodb - 用 Mongoose 保存在 mongoDb 中,保存了意外的元素

javascript - 来自返回的 JSON 的新 javascript 数组

javascript - 在字符数后添加字符串(一次!)

javascript - 通用 throw 给出 Expected an object to be thrown lint error

jquery - 垂直居中屏幕靠着元素