我目前正在使用loopback框架的項目。我感到非常沮喪,好像我正在爲這個框架而奮鬥,以完成一些非常簡單的事情。我只需要創建新創建的關聯實例,當接收到一個請求來創建一個包含孩子信息的父實例時。我已經將它工作到了它實際上創建子項的地步,但是當我嘗試設置屬性時,我可以在響應中返回父項和子項......它實際上並未設置子項屬性。這裏發生了什麼??? (編輯我假設模型實例實現setter/getters來防止重寫它設置的一些屬性)使用父模型創建子記錄並返回嵌套在響應中
我找不到任何文檔中有關做這樣簡單的事情。我能找到的最多的是嵌套模型的檢索。當我有一個擁有很多孩子的家長時,如果不發送20個請求,我似乎無法找到任何創建它們的東西。
module.exports = function(Parent) {
Parent.on('dataSourceAttached',() => {
const create = Parent.create.bind(Parent);
Parent.create = async (data, opts) => {
const { Child } = Parent.app.models;
let instance;
try {
instance = await create(data);
if (data && data.children && Array.isArray(data.children)) {
const { id: parentId } = instance;
const children = await new Promise((resolve, reject) =>
Child.create(
data.children.map(m => Object.assign({}, m, { parentId })),
opts,
(err, res) => (err ? reject(err) : resolve(res))
)
);
instance.children = children;
console.log(instance.children === children); // false (wtf... #@#$#$%)
}
return instance;
} catch (err) {
// handle err
}
};
});
};
我的問題是既沒有關係,也沒有實際的子實例的創建。這我可以執行得很好。 家長:'比如=等待創建(數據);' 孩子:'const的孩子=等待新的承諾((解析,拒絕)=>' 我想這樣做是與創建同時返回父我實際上是通過不返回一個模型實例來解決這個問題的(在父類和子類中使用'.toJSON'),我確信它並不理想,我認爲應該有一些方法來使用loopback但是這個 – Goblinlord
是的,我認爲這是唯一的方法,但是如果你願意打另一個電話,也許你會得到想要的結果 – itssajan
是的,我可以使用查詢參數loopback提供另一個調用,但整個問題是不必這樣做。 – Goblinlord