nodejs中是否有类似于EJB for EJB的事务支持。我似乎找不到任何东西。大多数帖子建议除了nodejs之外还使用EJB。
在这种情况下,vert.x会更好吗?我需要在异步模型上设置支付网关。想知道是否要使用vert.x或nodejs。
答案 0 :(得分:1)
您可以将ORM用于支持Sequelize.js等事务的Node.js。虽然有一些限制但可以支持简单的实现。
以下是sequelize
的示例代码 return sequelize.transaction().then(function (t) {
return User.create({
firstName: 'Homer',
lastName: 'Simpson'
}, {transaction: t}).then(function (user) {
return user.addSibling({
firstName: 'Lisa',
lastName: 'Simpson'
}, {transaction: t});
}).then(function () {
t.commit();
}).catch(function (err) {
t.rollback();
});
});
答案 1 :(得分:0)
正如@Wangot 所指出的,各种 Node.js 包中都有事务,而 sequelize
是一个很棒的包,因为它可以连接到各种基于 SQL 的数据库。
如果您使用 sequelize
,并且您来自 Java 背景,那么还可以查看 zb-sequelize
npm 包。它通过添加 2 个装饰器极大地简化了事务管理:@Transactional
和 @Tx
import { Transactional, Tx } from 'zb-sequelize';
@Transactional
function fooBar(@Tx transaction) {
foo(transaction);
bar(transaction);
}
@Transactional
function foo(@Tx transaction) {
}
@Transactional
function bar(@Tx transaction) {
}
如果您以前使用过 Spring,那么这可能看起来很熟悉。