bugfix> node.js > 投稿

私は使っているnode-querybuilder バッチでデータを更新します。

これは私がやっていることです。

const key = 'tripId';
const where = {'tripId =' : id}
const dataset= 
[   { studentId: 43 }, 
    { studentId: 42 } 
];

db.queryBuilder.update_batch('trip_students_booking', dataset, key, where, (err, res) => {
    if (err) return console.error(err);
});

応答として、 node-querybuilder からこのエラーメッセージが表示されます。

Error: update_batch(): You must provide some data to batch update!

回答 1 件
  • まず最初に、このライブラリは本番環境ではなく、バグがあるため、https://www.npmjs.com/package/node-querybuilder#update_batchを避けてください(プルリクエストhttps:// githubを作成しました)。 com/kylefarris/node-querybuilder/pull/24)。 http://knexjs.orgをご覧ください。

    続行する場合は、 Key を渡す必要があります   dataset のオブジェクト内 。ドキュメントでは、

    Name of the key in each data object that represents a where clause.

    インデックスキーが必要ですが、条件はオプションで、コードは次のようにする必要があります

    const key = 'tripId';
    let dataset = [{
            tripId: id,
            studentId: 43
        },
        {
            tripId: id,
            studentId: 42
        }
    ];
    
    db.queryBuilder.update_batch('trip_students_booking', dataset, key, (err, res) => {
        if (err && err.length > 0) return console.error(err);
    });
    
    

    モジュールの新しい更新をマージして公開する前に試してみたい場合は、 const results = null; から行番号143を更新してみてください。   let results = null; へ  ファイル ./node_modules/node-querybuilder/drivers/mysql/query_builder.js 内 これがあなたを願っています

あなたの答え