node.js - 多种型号的水线交易

标签 node.js sails.js waterline

我正在使用 Sails Waterline mysql 适配器来管理 MySQL 数据库,

在抑制期间我有 3 个模型,我必须在 Seire 中执行查询,但如果最后一个模型失败,我必须执行回滚。通过水线和交易可以实现这一点吗?

最佳答案

是的,您可以使用 Model.query 函数来实现此目的。它允许您执行任何 native SQL 查询。例如

var myQuery  = "select * from users";
User.query(myQuery, function(err, result){
  if(err){
    // error handling here
  }
  else{
    // result handling here
  }
})

通过执行控制台日志仔细观察结果对象。

对于您的情况,您需要编写一个 SQL 存储过程来执行事务中的所有操作。然后你的代码就变成了

var myQuery = "call store_proc_name(params)";

这里的结果对象理解起来会稍微复杂一些。仔分割析一下。现在,使用 native 查询时要注意的是,请确保转义用户提供的参数以避免 SQL 注入(inject)攻击

关于node.js - 多种型号的水线交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27044050/

相关文章:

node.js - 显然我删除了node_module上的一些文件,我该如何恢复它们?

node.js - Waterline/Sails.js 使用 MariaDB 进行批量插入和删除

javascript - 在 Controller 中调用父操作

将项目部署到 dokku 后删除 MongoDB 记录

javascript - 如何使一个库(例如 Q)可供所有 Controller 使用?

javascript - 我无法从 SugarJS 格式化日期

mysql - 尝试使用 sequelize 搜索两列

node.js - 在 Ubuntu 中尝试升级后 Node 版本不会改变

node.js - node.js 项目中的文件组织

node.js - 如何使用计算字段在 Waterline 中进行排序