我在我的應用程式中使用 objection.js。
在嘗試將字串陣列插入PostgreSQL資料庫列時,遇到了一個問題。該列的定義如下:
path TEXT[] NOT NULL
這是模式:
path: { type: 'array', items: { type: 'string' }, notNull: true }
我想使用upsertGraphAndFetch
(objection.js)更新表格列,但在更新和插入時,插入列path時出現錯誤
return NotificationUserOption.query().upsertGraphAndFetch( { userId: ctx. user, path, groupId, option }, { insertMissing: true },
當我傳遞類似於['chat']
的path時
await updateGlobalChatNotificationOptIn({ variables: { path: ['chat'], option: updatedGlobalChatNotificationOptIn ? '30MinSummary' : 'off', }, }) }
然而,當我嘗試使用這段程式碼插入數組時,遇到了以下錯誤:
陣列文字格式錯誤:“[”chat“]” “[”必須明確指定數組維度。
我嘗試使用單括號('{chat}'
)和雙括號([['chat']]
),但都無效。
如何正確格式化數組文字,以便在插入PostgreSQL列時不遇到此錯誤?
要將字串陣列插入到PostgreSQL的
TEXT[]
類型的欄位中,您需要將JavaScript陣列轉換為字串表示形式,使用花括號和雙引號包裹每個元素。在Objection.js中執行以下操作:
現在
TEXT[]
將不會出現任何"malformed array literal"錯誤。從資料庫查詢資料時,Objection.js將處理將其轉換回JavaScript陣列。#Apache-Age #posgresql #graphql #objection.js