从Sequelize中的非实例更新
updating from non-instance in Sequelize
我正试图找出如何使用非实例对象来最好地更新行。这个用例(我想)很常见。基本上,我有一个保存API方法:
function save(req, res, next) {
var instance = req.body;
var promise;
if (instance[this.pkeyProperty]) {
promise = this.model.update(instance, {
[this.pkeyProperty]: instance[this.pkeyProperty],
returning: true
})
.then((affectedCount, affectedRows) => affectedRows[0])
}
else {
promise = this.model.create(instance);
}
promise
.then((instance) => res.ok(instance))
.catch(err => res.serverError(err));
}
想知道这是否是一种合适的insertOrUpdate方法(我看到了upstart方法,但我不想使用它,因为我希望我的调用返回新创建的实例,而不必在插入/更新后找到它们)。
在您的情况下,我将使用findOrCreate
方法
function save(req, res, next) {
var instance = req.body;
this.model.findOrCreate( {
where : { [this.pKeyProperty] : instance[this.pKeyProperty] },
defaults : instance
}).spread( (result, created) => {
return created ? result : result.update(instance)
}).then( instance => {
res.ok( instance );
}).catch( err => res.serverError(err) );
}
它将查找或创建新实例并返回。
相关文章:
- 从Sequelize中的非实例更新
- 更新Redux状态&然后在同一实例中获取更新状态
- 使用 JavaScript 中的实例更新原型
- 如何使用每个ajax请求更新实例变量
- 原型值不会针对 js 中的每个实例更新,为什么
- 在 PHP 中,当同一页面的其他实例更改时,更新页面
- 运行 AJAX 函数的多个实例 - 仅第二个实例更新
- 如何允许 ActiveX 对象在 JavaScript 中实例化之前安装更新的版本
- 按需更新许多 Highcharts 实例的最佳性能
- Angularjs - 更新同一控制器的多个实例
- 获取所有实例化的javascript对象并更新值
- Javascript PHP更新所有打开的实例,如Facebook
- 如何更新表示相同数据的两个不同React组件实例
- 在保存新的模型实例之后,在Ember.js中转换到路由之前,更新资源模型
- 更新CKEditor'在实例已经创建之后,通过JavaScript创建的CSS
- 如何使用jquery隐藏/更新/显示具有相同ID的多个实例
- 添加新的行实例,无法更新单元格原始值
- 更新现有HandsOnTable实例的设置
- 如何用原型函数更新实例属性,并从另一个函数访问它
- 当其他人通过同一页面的另一个实例更新数据库时,我想更新我的网页