Hy,我是nodejs和sequelize world的新手(来自java + spring)。 我有一个关于如何在nodejs和sequelize中使用的事务的问题。我可以使用控制器中的事务并使用continuation-local-storage模块,如下所示:
router.post('/client/new', function (req, res, next) {
models.sequelize.transaction({
autocommit: false
}, function (t) {
function insertClient(company) {
var body = _.extend({}, req.body);
body.id_company = company.id;
return models.Client.create(body);
}
return models.Company.find({
where: {
id: req.body.company.id
}
}).then(function (company) {
if (company) {
return insertClient(company);
} else {
return models.Company.create(nome: req.body.company).then(function (company) {
return insertClient(company);
});
}
});
}).then(function (client) {
return res.json({
client: client
});
}).catch(function (err) {
next(err);
});
});
但这种方式有问题,如果客户端连接在下载正文时已中止提交。当请求完成时,我有什么办法可以做到这一点?或者最好的方法是如何做到这一点? 有没有其他REST或ORM框架可以做这样的事情? (承诺完成请求)
感谢您的时间和耐心。