как вернуть значение запроса в переменной ( customerData )#Nodejs nodejs postgres

#node.js #node-mysql #node-postgres

Вопрос:

Код с запросом:

 var customerData =  pool.query('SELECT * FROM customers WHERE 
licensenumber = $1 AND phone = $2 ORDER BY id ASC LIMIT 1 ',
[Licensenumber,phone], (error, result) => {
if (error) {
throw error}
res.status(200).json(result.rows)
})
 

Как я могу вернуть результат запроса?

Ответ №1:

Ваш вопрос не очень ясен, и, кроме того, вы опубликовали очень ограниченную часть кода, я догадался, что вы хотели сделать что-то вроде:

 try {
 const customerData = await pool.query('SELECT * FROM customers WHERE licensenumber = $1 AND phone = $2 ORDER BY id ASC LIMIT 1 ', [Licensenumber,phone]);
 res.status(200).json(customerData.rows);
} catch (e) { console.error(`An error occured: ${e}`); }
 

В документации говорится, что поддерживаются обещания, поэтому сначала вы await получите ответ, а затем отправьте его клиенту.

РЕДАКТИРОВАТЬ: несколько советов:

  • всегда предпочитайте const и let , var не следует использовать из — за проблем с областью применения
  • всегда предпочитайте использовать обещания вместо обратных вызовов, чтобы избежать callback-hell

Комментарии:

1. Как сохранить возвращаемое значение запроса в переменной в Nodejs..

2. Вы только что сделали с const res = await pool.query()