Bookshelf plugin for PostgreSQL, MSSQL, and Oracle databases that allows for specifying a "returning" clause for insert and update queries. The model is updated with the updated values of the columns specified, giving you an updated representation of your model without needing a subsequent fetch. Delete queries are also supported for returning the state of the model being deleted without requiring it to be fetched first.
npm install bookshelf-returning --save
Apply the plugin:
const returning = require('bookshelf-returning');
bookshelf.plugin(returning);
And use returning
in your save options:
const User = bookshelf.Model.extend({
tableName: 'users',
});
User.forge({ id: 1 }).save({ first_name: 'Josh' }, { returning: '*' })
.then((updated) => {
console.log(updated.get('first_name')); // Josh
});