簡體   English   中英

Sequelize - Bulk從數組創建

[英]Sequelize - Bulk create from array

我有一個項目數組,需要創建它們到DB。

我需要檢查每個插入是否成功,因此插入新數組(結果)項目+ success = true作為json。

如果沒有成功創建 - 在(結果)項目+ success = false之前插入到同一個數組。

這是代碼:

create_cards: function (filter_id, is_filter, cards) {
    var result = [];
    var curr_card = null;
    for (var card in cards) {
        curr_card = this.create( {
            filter_id: filter_id,
            template: card.template,
            state: card.state,
            question_id: card.question_id || -1,
            answers: card.answers || -1,
            description: card.description || -1,
            correct_answer: card.correct_answer || -1
        }).then(function(card) {
            result.push({card: JSON.stringify(card.dataValues), success: true})
        },function(err) {
            result.push({card: card.dataValues, success: false})
        });
    }
    return results;
}

現在,2個問題:

  1. 循環結束后有'返回結果',但是我得到空數組。我應該如何在每次創建后批量創建AND,以確保創建成功?

  2. 我該如何在錯誤功能中獲得卡? 我只將'err'作為拒絕函數的變量。

謝謝!

 create_cards: function(filter_id, is_filter, cards) { var result = []; var promises = cards.map(function(card) { return this.create({ filter_id: filter_id, template: card.template, state: card.state, question_id: card.question_id || -1, answers: card.answers || -1, description: card.description || -1, correct_answer: card.correct_answer || -1 }) .then(function() { result.push({ card: card, success: true }); }) .catch(function(err) { result.push({ card: card, success: false }); return Promise.resolve(); }); }); return Promise.all(promises) .then(function() { return Promise.resolve(result); }); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM