我正在节点中构建一个应用程序,我正在处理错误处理方面。我正在使用ajax将表单中的数据发布到我的服务器上,以便上传到我的postgresql数据库中。其中一个限制是电子邮件必须是唯一的,否则会引发错误。我能够在服务器端控制台上打印错误,但我也想在客户端的浏览器上也出现console.log和/或alert的错误。这是我尝试过的:
客户方:
$("#submit").click(function() {
var data = {
first_name: $("#firstName").val(),
last_name: $("#lastName").val(),
email: $("#email").val(),
password: $("#password").val()
};
$.ajax({
type: "POST",
url: "/add",
data: data,
success: function() {
console.log('success');
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('some error');
}
});
});
服务器端:
router.route('/add').post(function(req, res) {
knex('users').insert({
first_name: req.body.first_name,
last_name: req.body.last_name,
email: req.body.email,
password: req.body.password
}).then().catch(function(error){
console.log("ERROR ERRROR ERROR " + error) //prints on console
res.send(error);
});
});
使用此代码,问题是客户端没有调用错误函数...有人可以帮忙吗?
提前谢谢!
答案 0 :(得分:2)
这正是ajax中的success
和error
。您可以使用它来发送成功或错误状态代码。例如:res.send(400)
或res.send(200)
。
您还可以使用响应发送数据,例如res.send(400, data)
当然,您可以使用任何其他HTTP代码,因为您觉得方便。
现在,在
中error: function(data)) {
alert('some error');
}
应该触发警报