SQLite3
本章主要介绍 SQLite3 的使用方法。
概述
SQLite3 是一种轻量型、进程内的关系型数据库,是 EdgerOS 内置的一种自包含的、无服务器的、零配置的事务性 SQL 数据库引擎。
使用方法
使用以下命令导入 SQLite3 数据库。
var Sqlite3 = require("sqlite3");
使用以下命令建库。
var db = Sqlite3.open(":memory:");
使用以下命令在数据库中建表。
db.run("CREATE TABLE user(name text, age int);");
功能介绍
查询数据
请参考以下示例,该程序监听客户端发来的查询 user 数据请求, 通过 db.prepare(arg1)
执行了查询 user 表的 sql 脚本,之后遍历查询出的结果集,最后通过 stmt.finalize()
结束查询。
router.get("/list", function(req, res) {
var data = [];
// 查询user表的所有记录
db.run("SELECT * FROM user;", (row) => {
data.push(row);
});
res.json(data);
});
以下为前端发送查询请求示例。
getUsers: function () {
const auth = {
'edger-token': this.token,
'edger-srand': this.srand
};
axios.get('/api/sqlite/list', {}, {headers: auth})
.then(res => {
// ...
})
.catch(function (error) {
console.log(error);
});
}
添加数据
请参考以下示例,该程序将前端提交的 user 数据插入到 SQLite3 数据库的 user 表中。
router.post("/add", function(req, res) {
// 拿到提交的数据
var user = req.body;
// 运行sql脚本插入到数据库user表中
db.run("INSERT INTO user VALUES(?, ?);", user.name, user.age);
res.json({ ret: true });
});
以下为前端提交数据示例。
addUser: function () {
const auth = {
'edger-token': this.token,
'edger-srand': this.srand
};
axios.post('/api/sqlite/add', { name: this.name, age: this.age },{headers: auth})
.then(res => {
// ...
})
.catch(function (error) {
console.log(error);
});
}