問題
最近程式透過 knex.raw(...).toQuery 時,發生 Undefined binding(s) detected for keys 的錯誤,詳細如下,
Error: Undefined binding(s) detected for keys [GroupOrRoomId] when compiling RAW query: (?,:GroupOrRoomId,?)at Raw.toSQL
程式碼如下,
1 | const value = knex |
解法
錯誤有將 Key 指出來,就是 GroupOrRoomId 對應的物件為 Undefined 。
所以就針對 data.groupOrRoomId 檢查它的值為 undefined 是否合理,
或是允許它為空字串,就可以加上保護程式,如下,
1 | if(!data.groupOrRoomId) data.groupOrRoomId=''; |