2024年09月18日 Node js与SQLite数据库 极客笔记
SQLite是一种轻量级的关系型数据库管理系统,广泛用于移动应用程序和嵌入式设备上,其主要特点包括零配置、自包含、支持事务化等。Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,能够使JavaScript在服务器端运行,提供了丰富的模块以便开发人员编写高效的服务器端代码。在本文中,我们将详细介绍如何在Node.js中使用SQLite数据库。
首先,我们需要安装SQLite数据库。可以通过以下链接下载SQLite的预编译二进制包:SQLite Download。根据您的操作系统选择合适的版本进行下载并安装。在安装完成后,您可以通过命令行输入sqlite3
来验证安装是否成功。
要在Node.js中使用SQLite数据库,我们需要先安装SQLite3模块。可以通过以下命令来安装:
npm install sqlite3
接着,我们需要在Node.js中创建一个连接SQLite数据库的代码示例。以下是一个简单的示例:
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database(':memory:');
db.serialize(() => {
db.run("CREATE TABLE lorem (info TEXT)");
const stmt = db.prepare("INSERT INTO lorem VALUES (?)");
for (let i = 0; i < 10; i++) {
stmt.run("Ipsum " + i);
}
stmt.finalize();
db.each("SELECT rowid AS id, info FROM lorem", (err, row) => {
console.log(row.id + ": " + row.info);
});
});
db.close();
在这个代码示例中,我们首先引入了sqlite3
模块,并创建了一个内存中的SQLite数据库实例。然后,我们使用db.serialize()
来执行一系列的SQLite数据库操作:创建表格、插入数据、查询数据并输出。最后,我们关闭了数据库连接。
运行以上代码示例,您将看到输出的结果为:
1: Ipsum 0
2: Ipsum 1
3: Ipsum 2
4: Ipsum 3
5: Ipsum 4
6: Ipsum 5
7: Ipsum 6
8: Ipsum 7
9: Ipsum 8
10: Ipsum 9
在SQLite中执行SQL查询非常简单,我们可以使用db.all()
方法来执行SQL查询并获取结果。以下是一个示例:
db.all("SELECT * FROM lorem", (err, rows) => {
rows.forEach((row) => {
console.log(row.info);
});
});
在这个示例中,我们执行了一个简单的查询语句来获取lorem
表中的所有记录,并输出每条记录的info
字段。
SQLite支持事务的特性,我们可以将一系列的数据库操作组合在一个事务中,以避免数据的不一致性。以下是一个使用事务的示例:
db.serialize(() => {
db.run("BEGIN TRANSACTION");
// 在事务中执行一系列操作
db.run("INSERT INTO lorem VALUES ('Transaction test')");
db.run("DELETE FROM lorem WHERE rowid = 1");
// 提交事务
db.run("COMMIT");
});
在这个示例中,我们使用BEGIN TRANSACTION
开始了一个事务,在事务中进行了插入和删除操作,最后使用COMMIT
提交了事务。
为了避免SQL注入攻击,我们应该使用参数化查询来执行SQL查询。以下是一个简单的示例:
const stmt = db.prepare("INSERT INTO lorem VALUES (?)");
stmt.run("Parameterized query");
stmt.finalize();
在这个示例中,我们使用?
占位符来表示参数,然后使用stmt.run()
方法来传递参数。
本文详细介绍了如何在Node.js中连接和操作SQLite数据库。通过安装SQLite3模块并编写相关的代码,我们可以轻松地实现在Node.js中对SQLite数据库进行增删改查操作。同时,我们还介绍了如何使用事务和参数化查询,以确保数据库操作的安全性和可靠性。
本文链接:http://so.lmcjl.com/news/13345/