
在 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 开发中的一个优秀选择。希望本文对你有所帮助!