API REST Проверьте, существует ли столбец SQL какого-либо значения в javascript - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть db airport, там TABLE туристов и COLUMN: id и TABLE рейсов, а там столбец: listoftouristsbyid, который представляет собой массив целых чисел.Мне нужно проверить, передал ли я REST API целочисленный запрос, который является идентификатором Tourist, который не существует.Означает, что нет туриста с данным идентификатором (идентификатор является первичным, автоинкрементный ключ).Я написал что-то вроде этого:

app.post('/flights', function(req, res) {
    pool.connect(function(err,client,done) {
        if(err) {
            return console.log("Error fetching clients", err);
        }
        for (let i=0;i<req.body.listoftouristsbyid.length();i++) {
            if (client.query("EXISTS (SELECT * FROM tourists WHERE tourists.id = " + req.body.listoftouristsbyid[i]) == null)
                    return console.log("Tourist "+req.body.listoftouristsbyid[i]+" you want to add does not exist");
        }
        client.query('INSERT INTO flights(departuredate, arrivaldate, numberofseats, listoftouristsbyid, ticketprice) VALUES($1, $2, $3, $4, $5)', 
            [req.body.departuredate, req.body.arrivaldate, req.body.numberofseats, req.body.listoftouristsbyid, req.body.ticketprice]);
        done();
        res.redirect('/flights');
    })
})

Но это, очевидно, не работает, и даже когда я набираю эту команду в POSTGRESQL, это дает мне синтаксическую ошибку.Поэтому мне нужен QUERY, который оценивается, и когда он ложный, он должен избегать функции и останавливать передачу номеров, которые являются идентификаторами элементов, которые не существуют.Пожалуйста, помогите


РЕДАКТИРОВАТЬ: Я пытался с законным запросом SELECT, но безрезультатно.Возврат не нарушает функцию и POST-запрос добавляет новый рейс, хотя это не должно быть.Вот код "

app.post('/flights', function(req, res) {
    pool.connect(function(err,client,done) {
        if(err) {
            return console.log("Error fetching clients", err);
        }
        client.query("SELECT tourists.id FROM tourists WHERE tourists.id = " + req.body.listoftouristsbyid[i], function (err, result) {
            done();
            if (result.rows === 0) {
                return console.log("Tourist "+req.body.listoftouristsbyid[i]+" you want to add does not exist" + err);
            }
        })
        client.query('INSERT INTO flights(departuredate, arrivaldate, numberofseats, listoftouristsbyid, ticketprice) VALUES($1, $2, $3, $4, $5)', 
            [req.body.departuredate, req.body.arrivaldate, req.body.numberofseats, req.body.listoftouristsbyid, req.body.ticketprice]);
        done();
        res.redirect('/flights');
    })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...