Я новичок в NodeJs и пытался использовать pg-promise для выполнения всех запросов к моя база данных PG. Я хочу иметь возможность динамически обновлять столбцы, то есть иногда я буду обновлять только два столбца для строки, иногда я буду обновлять их все и т. д. Мой ввод будет JSON.
Поскольку я хочу, чтобы конечная точка могла обновлять несколько строк, я попытался использовать пространство имен помощников с Набор столбцов.
Вот мой код Javascript (вдохновленный предыдущими ответами stackoverflow):
/* logic for skipping columns: */
const skip = c => !c.exists || c.value === undefined;
/* all the columns of the table */
const column_structure = new dbconfig.pgp.helpers.ColumnSet(
[ '?id',
{name: 'firstname', skip},
{name: 'surname', skip},
{name: 'yob', skip}, // year of birth
{name: 'defensive_skill', skip},
{name: 'offensive_skill', skip},
{name: 'login', skip},
{name: 'password', skip}
],
{table: 'players'});
Вот JSON, который я передаю в конечную точку:
[{
"id" : 25,
"firstname": "Stephen",
"surname": "Harrison",
"yob": 1991,
"defensive_skill": 5,
"offensive_skill": 3,
"login": "harry",
"password": "123456"
},
{
"id": 26,
"firstname": "Chris",
"surname": "Jackson",
"defensive_skill": 5,
"offensive_skill": 4,
"login": "chris",
"password": "123456"
}
]
И вот ошибка:
Property 'yob' doesn't exist.
Как видите, во втором объекте моего массива я не указал поле 'yob'. Я ожидал, что для второго объекта будут обновлены все столбцы, кроме «yob». Есть ли что-то, что я делаю неправильно?
yob
отсутствует, и его потребуется добавить. - person Lucas   schedule 15.05.2019c => !c.exists || c === undefined;
поc => !c.exists || c.value === undefined;
. . - person vitaly-t   schedule 17.05.2019