SQLite作为一种轻量级的数据库管理系统,因其小巧、易于使用和跨平台的特点,在Node.js项目中得到了广泛应用。本文将详细介绍如何在Node.js中操作SQLite数据库,包括安装、连接、查询以及项目整合等方面的内容。
1. 安装SQLite3模块
首先,您需要在Node.js项目中安装sqlite3模块。可以使用npm(Node.js包管理器)来安装:
npm install sqlite3
安装完成后,您就可以在项目中使用sqlite3模块了。
2. 连接SQLite数据库
使用sqlite3模块连接SQLite数据库非常简单。以下是一个基本的连接示例:
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('database.db');
db.serialize(() => {
db.run("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)");
});
db.close();
在这个例子中,我们首先引入了sqlite3模块,然后创建了一个新的数据库连接对象。serialize
方法用于确保SQL语句按顺序执行,run
方法用于执行创建表的SQL语句。最后,我们调用close
方法关闭数据库连接。
3. 执行SQL查询
连接到数据库后,您可以使用sqlite3模块提供的API执行各种SQL查询。以下是一些常见的查询示例:
3.1 插入数据
db.run("INSERT INTO users (name, email) VALUES (?, ?)", ['Alice', 'alice@example.com'], function(err) {
if (err) {
return console.error(err.message);
}
console.log("A row has been inserted with rowid "+this.lastID);
});
3.2 查询数据
db.all("SELECT rowid AS id, name, email FROM users", [], (err, rows) => {
if (err) {
throw err;
}
rows.forEach((row) => {
console.log(`${row.id}: ${row.name}, ${row.email}`);
});
});
3.3 更新数据
db.run("UPDATE users SET email = ? WHERE name = ?", ['alice_new@example.com', 'Alice'], function(err) {
if (err) {
return console.error(err.message);
}
console.log(`Row(s) updated: ${this.changes}`);
});
3.4 删除数据
db.run("DELETE FROM users WHERE name = ?", ['Alice'], function(err) {
if (err) {
return console.error(err.message);
}
console.log(`Row(s) deleted: ${this.changes}`);
});
4. 项目整合
在Node.js项目中整合SQLite数据库操作,可以通过以下步骤实现:
- 在项目中引入sqlite3模块。
- 创建数据库连接。
- 根据业务需求编写相应的数据库操作代码。
- 在应用退出或不再需要数据库连接时,关闭数据库连接。
以下是一个简单的Node.js项目示例,展示了如何整合SQLite数据库:
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('database.db');
// 创建数据库表
db.serialize(() => {
db.run("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)");
});
// 添加用户
const addUser = (name, email) => {
db.run("INSERT INTO users (name, email) VALUES (?, ?)", [name, email], (err) => {
if (err) {
return console.error(err.message);
}
console.log("A row has been inserted with rowid "+this.lastID);
});
};
// 查询用户
const queryUser = (id) => {
db.get("SELECT * FROM users WHERE id = ?", [id], (err, row) => {
if (err) {
return console.error(err.message);
}
console.log(`User: ${row.name}, ${row.email}`);
});
};
// 关闭数据库连接
db.close();
通过以上步骤,您可以在Node.js项目中轻松实现与SQLite数据库的高效数据交互。