Rumah > Soal Jawab > teks badan
Saya menggunakan objection.js dalam apl saya.
Saya menghadapi masalah semasa cuba memasukkan tatasusunan rentetan ke dalam lajur pangkalan data PostgreSQL. Lajur ditakrifkan seperti berikut:
path TEXT[] NOT NULL
Berikut ialah skema:
path: { type: 'array', items: { type: 'string' }, notNull: true }
Saya ingin mengemas kini lajur jadual menggunakan upsertGraphAndFetch
(objection.js), tetapi semasa mengemas kini dan memasukkan, saya mendapat ralat semasa memasukkan laluan lajur upsertGraphAndFetch
(objection.js)更新表列,但在更新和插入时,插入列path时出现错误
return NotificationUserOption.query().upsertGraphAndFetch( { userId: ctx. user, path, groupId, option }, { insertMissing: true },
当我传递类似于['chat']
await updateGlobalChatNotificationOptIn({ variables: { path: ['chat'], option: updatedGlobalChatNotificationOptIn ? '30MinSummary' : 'off', }, }) }Apabila saya melepasi laluan yang serupa dengan
['chat']
rrreee
Walau bagaimanapun, apabila saya cuba memasukkan tatasusunan menggunakan kod ini, saya mendapat ralat berikut:Tatasusunan literal cacat : "["sembang"]" "[" mesti menyatakan secara eksplisit dimensi tatasusunan.
'{chat}'
)和双括号([['chat']]
Saya cuba menggunakan kurungan tunggal (
P粉0098287882024-01-30 11:48:17
Untuk memasukkan tatasusunan rentetan ke dalam lajur jenis PostgreSQL TEXT[]
, anda perlu menukar tatasusunan JavaScript kepada perwakilan rentetan, membalut setiap elemen menggunakan pendakap kerinting dan petikan berganda.
Lakukan perkara berikut dalam Objection.js:
// 将数组转换为字符串表示形式 const pathArray = ['chat']; const pathString = `{${pathArray.join(',')}}`; // 使用Objection.js将数据插入数据库 await NotificationUserOption.query().upsertGraphAndFetch( { userId: ctx.user, path: pathString, groupId, option }, { insertMissing: true } );
Sekarang TEXT[]
tidak akan ada sebarang ralat "arsuai cacat literal". Apabila menanyakan data daripada pangkalan data, Objection.js akan mengendalikan menukarnya kembali kepada tatasusunan JavaScript.
#Apache-Age #posgresql #graphql #objection.js