0
私は自分の問題をどのように記述するのか正確には分からないので、この質問のタイトルはちょっと混乱します。 状況は、2つの異なるクエリの助けを借りてデータを保存するSailsJSコントローラの中にアクションがある場合です。私の質問は、2つ目のクエリが失敗した場合(2つのクエリのデータが接続されているため)、最初のエントリを削除するうまいエレガントな方法ですか?帆JS 2つのクエリが最初に削除されて失敗する
私の現在のアプローチは、async autoを使用することです。エラーがある場合は、1つのクエリが成功したかどうかを確認して削除します。しかし、私は良い方法がなければならないと考えることを止めることはできません。
ブルーノ
EDITここ は私の現在のコードです:
async.auto([
user: function(callback) {
User.create({
mail: data.mail,
password: data.password,
device_id: data.device_id,
own_number: data.own_number
}).exec(callback);
},
contact: function(callback) {
Contact.create({
number: data.own_number,
number_id: util.hash(data.own_number),
soundlogo: null
}).exec(callback);
}
],
function(error, results) {
// check for error
if(error){
sails.log(error);
// Check whether one was successful and remove it
return res.json({errorMsg: error});
}
あなたの現在のコード、plsを貼り付けますか? – SkyQ
貼り付けたコードによれば、 'user'と' contact'は独立していて、 'user'の応答パラメタのどれもが' contact'で使われていません。したがって、 'async.auto'を使い、最初に' contact'にエントリを作成し、 'user'テーブルにそのエントリを作成して成功することができます。 – khushalbokadey