Node.js: возвращение вставленной строки из PostgreSQL v.11 в браузер - PullRequest
0 голосов
/ 30 мая 2019

Я новичок в использовании Node.js и PostgreSQL.

Я создаю запрос на публикацию с запросом на вставку.Как я могу вернуть вставленные значения в браузер одновременно?

app.post('/car_create', (req, res) => {
    const make = req.body.create_make;
    const model = req.body.create_model;

        client.query(`INSERT INTO cars (make, model) VALUES ($1, $2)`, [make, model], (error, results) => {
            if (error) {
                throw error
            }
            res.status(201).send(`Car added with ID: ${results};`);
            console.log(res);
            res.end();
        });
}); 

Как я могу получить данные из ответа?Мне нужно как-то изменить эту строку?

            res.status(201).send(`Car added with ID: ${results};`);       

1 Ответ

1 голос
/ 30 мая 2019

Сначала вам нужно вернуть значения после того, как вы вставите их в PostgreSQL.Для этого добавьте к вашему запросу предложение RETURNING, например: INSERT INTO cars (make, model) VALUES ($1, $2) RETURNING id, make, model.Добавьте больше столбцов в предложении RETURNING, если у вас есть и хотите больше.

Затем в обратном вызове переменная results должна содержать информацию о вашем запросе, включая то, что он возвратил (в ключе rows).).Вы можете отправить его клиенту разными способами, но чтобы вернуть его так же, как вы это делаете в настоящее время, вы можете сделать это:

const {id, make, model} = result.rows[0]; // rows is an array of rows returned, and since we do a single INSERT we only have one row, with the returned columns from the query
res.status(201).send(`Car added with ID ${id}, make "${make}" and model "${model}".`);

Если вы хотите использовать эти данные на внешнем интерфейсе, это будетпроще и удобнее отправлять данные в формате JSON, например: res.status(201).send(results.rows[0]);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...