我的一些模型沒有id
作爲主鍵,我需要知道給定模型的主鍵的名稱,但我找不到這樣做的方法。我搜索了waterline
文檔和源代碼,但是我在源代碼中找到的所有內容都是使用attributes
對象定義,該定義存儲在lib作用域中的不可訪問變量中。如何獲取模型的主鍵屬性名稱? (水線ORM)
的「清潔工」辦法,我發現做到這一點,現在是這樣的:
// file: api/libs/model.js
module.exports = {
//...
primaryKeyName: function (modelName) {
var key, attr, pk,
def = require('../models/' + modelName).attributes;
for (var key in def.attributes) {
attr = def.attributes[key];
if (attr && attr.primaryKey) {
pk = key;
break;
}
}
return pk || 'id';
},
//...
};
,但我覺得這是一個有點棘手,我想知道如果有不會是一個更好的解決方案在模型或模型實例(即記錄)上帶有一些隱藏/未記錄的輔助函數或方法...
你可以發佈一個詳細的例子。 – 2017-12-27 04:25:41