本文的大部分内容译自sqlite3官方文档
【约定:文中的#表示数据库实例,比如Database#close()表示数据库实例的close()方法】
安装
$ npm install sqlite3 --save
使用
node-sqlite3是基于BSD授权的。基本用法如下:
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:'); // 内存模式,数据不会永久存储。
db.serialize(function(){
db.run('CREATE TABLE lorem (info TEXT)');
var stmt = db.prepare('INSERT INTO lorem VALUES (?)');
for(var i = 0; i < 10; i++){
stmt.run('Ipsum ' + i);
}
stml.finalize();
db.each('SELECT rowid AS id, info FROM lorem', function(err, row){
console.log(row.id + ': ' + row.info);
});
});
db.close();
node-sqlite3有内置的序列化执行函数能自动等待阻塞的行为执行完毕才转到下一步执行,这也就是说它可以安全的启动一个函数来调用还未完全打开的数据库对象,因为它会等待数据库对象完全打开才会真正执行这个函数。比如Database#close()函数会等待所有待执行的数据库操作执行完毕才会执行从而关闭数据库。有关详细讲解请阅读后面的章节。