如何在bookshelf.js中保存多个记录。
如何在不循环和插入
的情况下保存以下数据[
{name: 'Person1'},
{name: 'Person2'}
]
答案 0 :(得分:5)
我认为Bookshelf已更新,将'invoke'替换为'invokeThen'。
var Accounts = bookshelf.Collection.extend({
model: Account
});
var accounts = Accounts.forge([
{name: 'Person1'},
{name: 'Person2'}
])
accounts.invokeThen('save').then(function() {
// ... all models in the collection have been saved
});
答案 1 :(得分:2)
var Promise = require('bluebird');
var Accounts = bookshelf.Collection.extend({
model: Account
});
var accounts = Accounts.forge([
{name: 'Person1'},
{name: 'Person2'}
])
Promise.all(accounts.invoke('save')).then(function() {
// collection models should now be saved...
});
Plz见注释:Invoke现已被invokeThen
取代accounts.invokeThen('save').then(function() {
// ... all models in the collection have been saved
});
答案 2 :(得分:0)
我尝试使用带有invokeThen的伪造跟进,但是在我的情况下失败了。看来我们可以使用模型本身而不必创建单独的集合实例。这里,Employee是一个模型,而不是一个单独的集合对象。
Employee.collection()
.add(employees)
.invokeThen('save');
答案 3 :(得分:0)
使用下面提供的invokeThen方法中的第三个参数来执行insert方法。
const payload = [{name: 'Person1'},
{name: 'Person2'}]
Users.collection(payload).invokeThen("save", null, { method: "insert" }).then(result => {
// further logics
})
我希望这会有所帮助。
谢谢