📜  如何使用 Node.js 连接 sqlite3 数据库?(1)

📅  最后修改于: 2023-12-03 15:38:05.264000             🧑  作者: Mango

如何使用 Node.js 连接 sqlite3 数据库?

介绍

在开发中,我们常常需要对数据库进行读写操作。Node.js 作为一门服务器端语言,支持许多数据库,其中包括轻量级的 SQLite 数据库。SQLite 是一款流行的嵌入式数据库,由于其轻量、快速的特点,广泛应用于移动设备和桌面应用程序中。

在本文中,我们将介绍如何使用 Node.js 连接 SQLite 数据库,并完成增删改查等基本操作。

安装

在使用 SQLite 数据库前,我们需要先安装 sqlite3 依赖包。可以通过 NPM 在终端中执行以下命令进行安装:

npm install sqlite3 --save
连接数据库

在使用 SQLite 数据库前,我们需要先创建一个 SQLite 数据库文件,以 .db 结尾的文件名即可。接着,我们可以使用 sqlite3 模块中的 Database 类进行连接。

const sqlite3 = require('sqlite3').verbose();

const DB_PATH = './mydatabase.db';
const db = new sqlite3.Database(DB_PATH, err => {
  if (err) {
    console.error(err.message);
  }
  console.log('Connected to the database.');
});
  • Database 类接受一个必选的参数 DB_PATH,该参数指定 SQLite 数据库文件所在路径。
  • verbose() 方法使模块输出更多信息,便于调试。

连接成功后,我们可以在回调函数中执行查询操作。

查询数据

我们可以使用 Database 类的 all 方法执行 SQL 查询语句,并将查询结果以数组形式返回。

const sql = `SELECT * FROM mytable`;

db.all(sql, [], (err, rows) => {
  if (err) {
    console.error(err.message);
  }
  rows.forEach(row => {
    console.log(row);
  });
});
  • all 方法的第一个参数 sql 是 SQL 语句,支持标准的 SQL 语法。
  • all 方法的第二个参数是可选参数,表示 SQL 查询语句中的占位符,用于防止 SQL 注入攻击。

执行 SQL 语句后返回的数据为数组,我们可以使用 forEach 方法打印每一行数据。

插入数据

我们可以使用 Database 类的 run 方法执行 SQL 插入语句,并返回插入数据的 ID。

const sql = `INSERT INTO mytable (name, age) VALUES (?, ?)`;
const name = '张三';
const age = 18;

db.run(sql, [name, age], function(err) {
  if (err) {
    console.error(err.message);
  }
  console.log(`Rows inserted ${this.changes}`);
  console.log(`Last inserted ID: ${this.lastID}`);
});
  • run 方法的第一个参数 sql 是 SQL 语句,支持标准的 SQL 语法。
  • run 方法的第二个参数是可选参数,表示 SQL 插入语句中的占位符,用于防止 SQL 注入攻击。
  • 回调函数的 this.lastID 属性返回插入数据的 ID。
更新数据

我们可以使用 Database 类的 run 方法执行 SQL 更新语句,并返回受影响的行数。

const sql = `UPDATE mytable SET age = ? WHERE name = ?`;
const age = 20;
const name = '张三';

db.run(sql, [age, name], function(err) {
  if (err) {
    console.error(err.message);
  }
  console.log(`Rows updated ${this.changes}`);
});
  • run 方法的第一个参数 sql 是 SQL 语句,支持标准的 SQL 语法。
  • run 方法的第二个参数是可选参数,表示 SQL 更新语句中的占位符,用于防止 SQL 注入攻击。
  • 回调函数的 this.changes 属性返回受影响的行数。
删除数据

我们可以使用 Database 类的 run 方法执行 SQL 删除语句,并返回受影响的行数。

const sql = `DELETE FROM mytable WHERE name = ?`;
const name = '张三';

db.run(sql, [name], function(err) {
  if (err) {
    console.error(err.message);
  }
  console.log(`Rows deleted ${this.changes}`);
});
  • run 方法的第一个参数 sql 是 SQL 语句,支持标准的 SQL 语法。
  • run 方法的第二个参数是可选参数,表示 SQL 删除语句中的占位符,用于防止 SQL 注入攻击。
  • 回调函数的 this.changes 属性返回受影响的行数。
关闭连接

在完成所有操作后,我们需要关闭数据库连接。

db.close(err => {
  if (err) {
    console.error(err.message);
  }
  console.log('Closed the database connection.');
});
总结

本篇文章介绍了如何使用 Node.js 连接 SQLite 数据库,并完成基本的增删改查等操作。

使用 SQLite 数据库有其优点,如易于使用、轻量级、快速等,如果您需要在 Node.js 项目中使用数据库,可以尝试使用此种数据库。

完整代码请见 Github

以上就是本文关于如何使用 Node.js 连接 SQLite 数据库的详细介绍,希望对您有所帮助。