具有事务的Nodejs异步模块

时间:2013-08-25 12:33:59

标签: node.js sqlite

我想在nodejs上的项目中使用sqlite数据库。我正在寻找一个sqlite模块,它将支持事务和异步

2 个答案:

答案 0 :(得分:2)

另一个选项是Knex。它是一个轻量级的查询构建器,支持sqlite,mysql和postgres,具有出色的文档并且正在积极开发中。 Knex还支持承诺和回调,这是一个很好的接触。

通过简单的Transaction方法支持与Knex的交易。以下是语法示例:

http://knexjs.org/#Transaction

Knex.Transaction(function(t) {

  Knex('books')
    .transacting(t)
    .insert({name: 'Old Books'})
    .then(function(row) {

      return When.all(_.map([
        {title: 'Canterbury Tales'},
        {title: 'Moby Dick'},
        {title: 'Hamlet'}
      ], function(info) {

        info.row_id = row.id;

        // Some validation could take place here.
        return Knex('book').transacting(t).insert(info);

      }));
    })
    .then(t.commit, t.rollback);

}).then(function() {
  console.log('3 new books saved.');
}, function() {
  console.log('Error saving the books.');
});

答案 1 :(得分:0)

这看起来是您的最佳选择:https://github.com/developmentseed/node-sqlite3

请注意,我没有个人经验。但它是最受欢迎/最活跃的并支持交易(https://github.com/developmentseed/node-sqlite3/wiki/API#databaseexecsql-callback)。

找到正确的node.js模块的一个很好的起点:https://nodejsmodules.org/tags/sqlite3

相关问题