我正在使用 PostgreSQL 和node-postgres: pool, Node.js 和 express 来进行一些简单的查询,我得到了用方括号括起来的对象,但我想没有它。
员工DA.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;
};
conttoller.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])