// app.js 这是我的注册路由,用户名是表中loginDetails表中的主要用户名。所以我能够看到用户名没有重复,但无法将该错误消息发送到registration_script.js。它一直给我失败的回调。
以下是server.js中的注册路由:
app.post('/register', function (req, res) {
let dbConnectionObject = db.dbConnection();
let status = 200;
let status_msg = "New user has registered";
let sql = "insert into loginDetails values('" + req.body.username + "','" + req.body.password + "')"
dbConnectionObject.query(sql, function (err, result) {
dbConnectionObject.end();
if (err) {
console.log(err);
status = 404;
status_msg = "Username exists";
console.log("in if")
return res.status(200).send(status_msg)
}
else {
console.log("in app.js insert")
console.log(result);
return res.status(200).send(status_msg)
}
})
在ajax调用请求中,无论app.js中的if-else语句如何,都会触发所有时间的故障回调 //registration_script.js
if ((password == $('#cpassword').val()) && ($('#password').val()) && ($('#user').val()) && ($('#cpassword').val())) {
let login_new = {
username: username,
password: password
}
$.ajax({
url: server_url + "/register",
type: "post",
data: login_new,
//Success callback
success: function (msg) {
alert(msg);
window.location.href = "../index.html";
}
,
error: function (jqXHR, status, err) {
//error callback
alert("Registration failed" + err + "stau" + status);
}
})
}
所以请帮助我根据条件实现成功和失败回调。
提前谢谢
答案 0 :(得分:-1)
您不应该在错误块中返回状态为200的响应:
if (err) {
console.log(err);
status = 404;
status_msg = "Username exists";
console.log("in if")
return res.status(200).send(status_msg)
}
而不是这样做
return res.status(status).send(status_msg)