Ошибка с PostgreSQL + Sequelize + array_append - PullRequest
0 голосов
/ 21 июня 2020

У меня проблемы со следующим кодом

    let user =  req.user.id;

    await MyTable.update(
        {'interested': Sequelize.fn('array_append', Sequelize.col('interested'), user)},
        {'where': {'slug': req.params.slug}}
    );

Следом идет трассировка стека ошибок

[0] Unhandled rejection TypeError: values.map is not a function
[0]     at ARRAY._value (D:\development_learning\Languages\Node\Bootcamp Node.js\practices\track-project\node_modules\Sequelize\lib\dialects\postgres\data-types.js:458:19)
[0]     at ARRAY._bindParam (D:\development_learning\Languages\Node\Bootcamp Node.js\practices\track-project\node_modules\Sequelize\lib\dialects\postgres\data-types.js:492:35)
[0]     at ARRAY.bindParam (D:\development_learning\Languages\Node\Bootcamp Node.js\practices\track-project\node_modules\Sequelize\lib\data-types.js:29:19)

Думаю, проблема связана с выполнением функции

Sequelize.fn('array_append', Sequelize.col('interested'), user)

Я не могу найти хорошую документацию в Sequelize.

Заранее спасибо!

1 Ответ

0 голосов
/ 22 июня 2020

объектов все еще нужно преобразовать в строку, чтобы они не вставлялись как «[объект объекта]»

var user = JSON.stringify({

    //your key and value
});

await MyTable.update(
    { interested: sequelize.fn('array_append', models.sequelize.col('interested'), user) },
    { where: { 'slug': req.params.slug } }
);
...