私は現在、loopbackフレームワークを使用しているプロジェクトに取り組んでいます。まるで私がこのフレームワークと戦って、非常に簡単なことをするように感じているのは、非常にイライラしています。子インスタンスの情報を持つ親インスタンスを作成するリクエストを受け取ったときに、新しく作成された関連インスタンスを作成するだけで済みます。私はそれが実際に子どもを作成するところまで働いていますが、私はそのプロパティを設定しようとすると、応答の親と子の両方を返すことができます...実際に子供のプロパティを設定しません。ここで何が起こっているのですか? (editモデルインスタンスがsetter/getterを実装して、それが設定するプロパティの一部をオーバーライドしないと仮定します)親モデルを持つ子レコードを作成し、応答でネストされた戻り値
このような単純なことについては、ドキュメントに何も見つかりません。私が見つけることができる最も多くは、ネストされたモデルの取得です。私は多くの子供がいる親を持つときに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'を使って)これを解決しました。私はそれが理想的ではないと確信しています、そして、私はループバックを使ってこれを行ういくつかの方法があると仮定しますしかし、これは – Goblinlord
はい、私はこれが唯一の方法だと思いますが、別の呼び出しをしたいなら、多分望みの結果を得るでしょう。 – itssajan
はい、ループバックが提供するクエリパラメータで別の呼び出しを行うことができます。それをする必要はありません。 – Goblinlord