jQuery AJAX POST请求和数据库错误

时间:2016-07-10 12:46:28

标签: jquery ajax node.js post

我正在发送一些数据以添加到数据库中。但是,当数据库无法为各种约束添加内容时,不会调用错误函数。如果出现数据库错误,如何显示错误?

var firstname = $('#firstname').val();
                var lastname = $('#lastname').val();
                var email = $('#email').val();
                var password = $('#password').val();
                var dataString = 'firstname=' + firstname + '&lastname=' + lastname + '&email=' + email + '&password=' + password;
                $.ajax({
                    type: "POST",
                    url: "../auth/signup",
                    data: dataString,
                    success: function (data) {
                        $('body').html("<h2>demo created successfully!</h2>");
                    },
                    error: function (data) {
                        $("body").html("<h2>Error!</h2>");
                    }
                })

在服务器端:

router.route('/signup')
    .post(function (req, res) {
        pg.defaults.ssl = true;
        pg.connect(process.env.DATABASE_URL || 'postgres://...', function(err, client) {
            if (err){
                console.log(err['detail']);
                res.status(500).send('Connection to the database went wrong');
            }
            client
                .query(`INSERT INTO agent (admin, email, password, firstname, lastname)
                VALUES (false, '${req.body.email}', '${req.body.password}', '${req.body.firstname}', '${req.body.lastname}');`, function(err, result) {
                    if(err){
                        console.log(err);
                        res.stauts(500).send(err);
                    }
                });
        });

1 个答案:

答案 0 :(得分:0)

您需要确保后端API返回not in the range of 200-299 or 304

的状态代码

然后只会触发错误回调。