【发布时间】:2018-11-03 14:47:54
【问题描述】:
我试图根据其内容以不同的方式处理服务器响应,但我什至无法运行与响应数据无关的东西。
这是我在 jQuery 中的请求:
function Register() {
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"));
}
快递:
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 => {})
})
我做错了什么?
【问题讨论】:
-
我不知道这个
sql.Request对象是如何工作的,但是代码的else部分从未将任何内容发送回响应中似乎有点可疑。如果你只是想表明它成功了,至少使用res.sendStatus(200)。 -
@Jeto 我应该把它插入
else吗?另外,我很确定sql.Request没有问题,至少它的query()方法没有问题,因为在这种情况下,它会同时执行console.log()和下一个查询。 -
是的,无论如何你都应该回复。
标签: javascript jquery express