Я хочу обновить несколько строк в моей базе данных. Моя проблема заключается в том, что обещание ничего не возвращает. Он успешно сохраняет, но ничего не возвращает.Bookshelfjs несколько данных обновления не возвращают обещание
Вот пример моего кода:
doUpdate: Promise.method(function (data) {
var self = this;
var jsonData = JSON.parse(data);
return Bookshelf.transaction(function (t) {
return _.each(jsonData, function (value, key) {
var queryMatch = {
id: value.id,
id2: value.id2
};
return self.forge(queryMatch)
.fetch({transacting: t})
.then(function (data) {
return data.save({content: value.newValue});
})
.catch(function(error) {
console.log(error)
})
});
});
})
Я использую Bluebird обещание.
Я заканчиваю использование Promise.map. Возможно, это одно и то же. Я пробовал ваш код, а часть сохранения действительно не работает. Он добавляет строку вместо обновления. Можете ли вы обновить свой ответ? что сохранить код выглядит чистым, чем мой код. Благодаря! –
Я обновил свой код, была небольшая ошибка; Тем не менее, он работал на меня раньше, и он все еще работает ... Надеюсь, теперь это правильно, иначе я боюсь, что могут возникнуть проблемы с версиями knex и bookshelf. – uglycode
Я пробовал ваш последний код. Теперь я получаю эту ошибку. первый аргумент должен быть строкой или буфером –