Не могу получить ответ express.js - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь обработать ответ сервера по-разному, в зависимости от его содержимого, но я даже не могу запустить то, что не связано с данными ответа.

Вот мой запрос в 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 => {})
})

Что я делаю не так?

1 Ответ

0 голосов
/ 04 ноября 2018

Отправить статус обратно , чтобы завершить запрос или он останется открытым. Вставьте 400 статусный ответ в ваш блок перехвата , чтобы интерфейсный пользователь узнал, что запрос не выполнен, и введите функцию fail():

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}')`);
            res.status(200).send();  // here add a status of 200 to signal success
        }
    }).catch(result => {
       res.status(400).send();  // send also a 400 status response to signal failure
    })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...