向客户端问题发送ajax错误

时间:2015-12-24 13:37:56

标签: javascript jquery ajax node.js

我正在节点中构建一个应用程序,我正在处理错误处理方面。我正在使用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);
    });
});

使用此代码,问题是客户端没有调用错误函数...有人可以帮忙吗?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

这正是ajax中的successerror。您可以使用它来发送成功或错误状态代码。例如:res.send(400)res.send(200)

您还可以使用响应发送数据,例如res.send(400, data)

当然,您可以使用任何其他HTTP代码,因为您觉得方便。

现在,在

error: function(data)) {
   alert('some error');
}

应该触发警报