Я использую PostgreSQL с node-postgres: pool , Node.js и express для выполнения простых запросов. Я получаю взамен объект, заключенный в квадратные скобки, но я хотел бы получить его без это.
employeeDA.js:
const Pool = require("pg").Pool;
require("dotenv").config();
const pool = new Pool({
user: process.env.USER,
host: process.env.HOST,
database: process.env.DATABASE,
password: process.env.PASSWORD,
port: process.env.PORT
});
const getOneDiet = id => {
let p = new Promise((resolve, reject) => {
return pool.query(
`SELECT employee.id, employee.first_name, employee.last_name, array_agg(diet.description) AS diet_list
FROM employee_diet
INNER JOIN employee ON employee_diet.employee_id = employee.id
INNER JOIN diet ON employee_diet.diet_id = diet.id
WHERE employee.id = ${id}
GROUP BY 1`,
(error, results) => {
if (error) {
console.log(error);
reject(`ERROR: unable to get count: ${error}`);
} else {
resolve(results.rows);
}
}
);
});
return p;
};
The conrtoller.js:
const getEmployeeDiet = async (request, response) => {
const id = parseInt(request.params.id);
try {
const employeeDiet = await employeeDA.getOneDiet(id);
console.log(employeeDiet)
response.status(200).json(employeeDiet);
} catch (error) {
console.log(error);
}
}
Результат:
[
{
"id": 8,
"first_name": "obos",
"last_name": "fomo",
"diet_list": [
"vegan",
"paleo"
]
}
]
Я хочу, чтобы результат был:
{
"id": 8,
"first_name": "obos",
"last_name": "fomo",
"diet_list": [
"vegan",
"paleo"
]
}
Как и предполагалось здесь Я видел, что в SQL Server есть команда для обработки этого: WITHOUT_ARRAY_WRAPPER
Есть ли что-то похожее в PostgreSQL?
Я ищу лучшее решение, чем resolve(results.rows[0])