在 Node.js 开发中,数据库是存储和管理数据的重要组成部分。SQLite 是一种轻量级的嵌入式数据库,它不需要单独的服务器进程,将整个数据库存储在一个单一的磁盘文件中。这使得它非常适合小型项目、嵌入式系统以及开发和测试环境。本文将详细介绍如何在 Node.js 中连接 SQLite 数据库,并通过示例代码演示基本的操作。
在 Node.js 中,我们可以使用 sqlite3
模块来连接和操作 SQLite 数据库。首先,确保你已经安装了 Node.js 和 npm(Node 包管理器),然后使用以下命令安装 sqlite3
模块:
npm install sqlite3
下面是一个简单的 Node.js 代码示例,展示了如何连接到一个 SQLite 数据库:
const sqlite3 = require('sqlite3').verbose();
// 打开数据库连接
const db = new sqlite3.Database('example.db', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the example database.');
});
// 关闭数据库连接
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('Closed the database connection.');
});
require('sqlite3').verbose()
:引入 sqlite3
模块并开启详细日志模式,方便调试。new sqlite3.Database('example.db', callback)
:创建一个新的数据库实例并尝试打开名为 example.db
的数据库文件。如果文件不存在,将自动创建一个新的数据库文件。db.close(callback)
:关闭数据库连接。下面的示例展示了如何在 SQLite 数据库中创建一个名为 users
的表:
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('example.db', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the example database.');
// 创建表
const sql = `CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)`;
db.run(sql, (err) => {
if (err) {
console.error(err.message);
}
console.log('Table created successfully.');
});
// 关闭数据库连接
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('Closed the database connection.');
});
});
接下来,我们向 users
表中插入一条数据:
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('example.db', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the example database.');
// 插入数据
const sql = `INSERT INTO users (name, age) VALUES (?,?)`;
const values = ['John Doe', 30];
db.run(sql, values, function (err) {
if (err) {
console.error(err.message);
}
console.log(`A row has been inserted with rowid ${this.lastID}`);
});
// 关闭数据库连接
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('Closed the database connection.');
});
});
最后,我们查询 users
表中的所有数据:
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('example.db', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the example database.');
// 查询数据
const sql = `SELECT * FROM users`;
db.all(sql, [], (err, rows) => {
if (err) {
console.error(err.message);
}
rows.forEach((row) => {
console.log(row);
});
});
// 关闭数据库连接
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('Closed the database connection.');
});
});
操作 | 代码示例 | 说明 |
---|---|---|
连接数据库 | const db = new sqlite3.Database('example.db', callback) |
打开或创建一个 SQLite 数据库文件 |
创建表 | db.run(sql, callback) |
执行 SQL 语句创建表 |
插入数据 | db.run(sql, values, callback) |
执行 SQL 插入语句,values 为参数数组 |
查询数据 | db.all(sql, values, callback) |
执行 SQL 查询语句,返回所有匹配的记录 |
关闭连接 | db.close(callback) |
关闭数据库连接 |
通过以上步骤,你可以在 Node.js 中轻松地连接和操作 SQLite 数据库。SQLite 的轻量级特性和简单易用的接口使其成为 Node.js 开发中的一个优秀选择。希望本文对你有所帮助!