Context
是 Session
和 Batch
的超類型。它包含從工作階段呼叫時立即執行,或在執行批次時執行的函式。
Mynode
實作沒有任何使用者概念,且未定義任何此類屬性。
find(Function constructor, Object keys, Function(Object error, Object instance[, ...]) callback[, ...]);
find(String tableName, Object keys, Function(Object error, Object instance[, ...]) callback[, ...]);
根據主索引鍵或唯一索引鍵值尋找特定執行個體。
您可以使用此函式的兩個版本。在第一個版本中,constructor
參數是已對應網域物件的建構函式。或者,您可以在函式的第二個變體中使用 tableName
。
對於 find()
的兩個版本,keys
可以是任何類型。索引鍵必須唯一識別資料庫中的單一列。如果 keys
是簡單類型(數字或字串),則參數類型必須與對應物件的主索引鍵類型相同或相容。否則,屬性會從參數中擷取,並與對應中的屬性名稱比對。如果所有屬性都存在,則會使用主索引鍵屬性,而忽略其他屬性。如果無法使用 keys
來識別主索引鍵,則會改為使用對應至唯一索引鍵欄的屬性名稱。如果找不到完整的主索引鍵或唯一索引鍵屬性,則會回報錯誤。傳回的物件會根據對應和資料庫中的目前值載入。
對於多欄主索引鍵或唯一索引鍵,必須設定所有索引鍵欄位。
load(Object instance, Function(Object error) callback);
將特定執行個體與其主索引鍵或唯一索引鍵和資料庫列比對來載入,而無需建立新的網域物件。(這與 find()
不同,後者會建立新的、已對應的網域物件。)
instance
必須設定其主索引鍵或唯一索引鍵值。物件中的已對應值會根據資料庫中的目前值載入。物件中未對應的屬性不會變更。
如果所有主索引鍵屬性都存在,則會使用主索引鍵屬性,而忽略所有其他屬性;否則,會使用對應至唯一索引鍵欄的屬性名稱。如果找不到完整的主索引鍵或唯一索引鍵屬性,則會回報錯誤。
操作完成時,會使用提供的參數呼叫 callback
函式。error
是 Node.js Error
物件;如需詳細資訊,請參閱 第 5.3.4 節,〈錯誤〉。
persist(Object instance, Function(Object error) callback);
persist(Function constructor, Object values, Function(Object error) callback);
persist(String tableName, Object values, Function(Object error) callback);
除非資料庫中已存在執行個體,否則將執行個體插入資料庫;如果已存在,則會向 callback
函式回報例外狀況。執行 callback
時,自動產生值會出現在執行個體中。
要持續保存的執行個體角色可以透過三種方式實現:透過執行個體物件;透過對應網域物件的建構函式 (含參數);或透過要插入的表格名稱和值。
在所有三種情況下,如果操作已完成,則會使用提供的參數呼叫 callback
函式 (如有)。error
是 Node.js Error
物件;如需詳細資訊,請參閱 第 5.3.4 節,〈錯誤〉。
remove(Object instance, Function(Object error) callback);
remove(Function constructor, Object keys, Function(Object error) callback);
remove(String tableName, Object keys, Function(Object error) callback);
依主索引鍵或唯一索引鍵,從資料庫中刪除類別的執行個體。
有三個版本的 remove()
;這些版本可讓您藉由參照 instance
物件、constructor
函式或表格名稱來刪除執行個體。instance
物件必須包含唯一識別資料庫中單一列的索引鍵值。否則,如果使用函式建構函式或表格名稱提供的 keys
是簡單類型 (Number
或 String
),則參數類型必須與對應物件的主索引鍵類型相同或相容的類型。如果 keys
不是簡單類型,則會從參數中擷取屬性,並與對應中的屬性名稱比對。如果所有屬性都存在,則會使用主索引鍵屬性,而忽略其他屬性。如果 keys
未識別主索引鍵,則會改為使用對應至唯一索引鍵欄的屬性名稱。如果找不到完整的主索引鍵或唯一索引鍵屬性,則會向 callback
回報錯誤。
remove()
的所有三個版本都會使用提供的參數呼叫 callback
函式 (如有),以在操作完成時執行。error
物件是 Node.js Error
;如需錯誤碼,請參閱 第 5.3.4 節,〈錯誤〉。
update(Object instance, Function(Object error) callback);
update(Function constructor, keys, values, Function(Object error) callback);
update(String tableName, keys, values, Function(Object error) callback);
使用提供的 values
更新資料庫中的執行個體,而無需擷取它。主索引鍵用於決定要更新哪個執行個體。如果資料庫中不存在執行個體,則會在 callback
中回報例外狀況。
與先前顯示的用於持續保存資料庫中執行個體和從資料庫中移除執行個體的方法相同,update()
存在三種變體,可讓您使用 instance
做為物件、具有 keys
的物件 constructor
,或使用 tableName
和 keys
。
keys
物件的唯一索引鍵欄位會決定要更新哪個 instance
。values
物件會提供要更新的值。如果 keys
物件包含對應至主索引鍵的所有欄位,則主索引鍵會識別執行個體。如果沒有,則會以非決定性方式選擇唯一索引鍵。
update()
無法用於變更主索引鍵。
save(Object instance, Function(Object error) callback);
save(Function constructor, Object values, Function(Object error) callback);
save(String tableName, Object values, Function(Object error) callback);
在資料庫中儲存執行個體,而無需檢查其是否存在。如果執行個體已存在,則會更新它(如同您已使用 update()
);否則,會建立它(如同已使用 persist()
)。執行個體 id
屬性用於決定應儲存哪個執行個體。與 update()
、persist()
和 remove()
相同,此方法可讓您使用物件、物件建構函式或表格名稱來指定執行個體。
save()
方法的所有三個版本都會使用提供的任何參數呼叫 callback
函式,以在操作完成時執行。error
是 Node.js Error
物件;如需錯誤碼和訊息,請參閱 第 5.3.4 節,〈錯誤〉。
Boolean isBatch()
Context
也會公開 isBatch()
執行個體方法,如果此 Context
是 Batch
,則傳回 true,如果是 Session
,則傳回 false。isBatch()
不接受任何引數。