JSON String 直接存取 SQLite3 的方法

最近在写的 Node.js App 的时候,需要直接将 对象 直接存入数据库,如果使用 JSON.stringify(json) 把 JSON 对象转换为字符串直接存入,会报错显示查询语句出错

var data = {
	name : "shin"
}

存入 JSON String 的时候需要使用 escape() 进行转义序列编码,取出的时候需要使用 unescape() 进行转义序列解码

var sqlite3 = require("sqlite3").verbose();
var db = new sqlite3.Database(config.dbName);
db.serialize(function() {
	db.run('CREATE TABLE source (data TEXT DEFAULT NULL)');
	db.run('INSERT INTO data VALUES (' + escape(JSON.stringify(data)) + ')');
	db.each("SELECT * FROM source", function(err, row) {
		data = JSON.parse(unescape(row.data));
	});
});
db.close();

=...=