Node.js中sqlite3的詳細闡述

一、簡介

Node.js是一個基於Chrome JavaScript運行時建立的平台,它提供了一種主要用於服務器端的運行語言。Sqlite是一個使用C語言編寫的輕型關係型數據庫,它適用於嵌入式設備以及那些需要一個本地存儲的應用場景。這篇文章將會介紹如何使用nodesqlite3模塊將Sqlite集成到Node.js中,以及如何使用該模塊提供的API對Sqlite數據庫進行操作。

二、安裝nodesqlite3

要在Node.js中使用sqlite3,需要先安裝nodesqlite3模塊。可以使用npm包管理器來安裝:

npm install sqlite3

或者是在Node.js項目的package.json文件中添加依賴:

{
  "dependencies": {
    "sqlite3": "^5.0.0"
  }
}

三、連接到數據庫

在使用nodesqlite3之前,需要先連接到一個Sqlite數據庫。可以使用下面的代碼示例連接到一個名為test.db的數據庫:

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

// 打開數據庫連接
let db = new sqlite3.Database('./test.db', (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Connected to the test database.');
});

在這個示例中,我們先引入了sqlite3模塊,然後使用Database對象中的構造函數來創建一個數據庫連接。連接的參數為數據庫的路徑。如果連接成功,將會輸出”Connected to the test database.”,否則將會輸出錯誤信息。

四、執行SQL語句

連接到數據庫之後,就可以執行SQL語句來對數據庫進行操作了。可以使用Database對象中的run()方法來執行SQL語句,例如下面的代碼示例:

// 執行SQL語句
db.run(`CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT UNIQUE NOT NULL,
    password TEXT NOT NULL
  )`, (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Table users created.');
});

在這個示例中,我們創建了一個名為users的表。如果執行成功,將會輸出”Table users created.”,否則將會輸出錯誤信息。

五、查詢數據

除了執行SQL語句之外,還可以使用Database對象中的all()方法查詢數據庫中的數據。例如下面的代碼示例將會查詢users表中的所有記錄:

// 查詢數據
db.all(`SELECT * FROM users`, (err, rows) => {
  if (err) {
    console.error(err.message);
  }
  rows.forEach((row) => {
    console.log(row.id, row.username, row.password);
  });
});

在這個示例中,我們查詢了users表中的所有記錄,並且使用forEach()方法遍歷查詢結果並輸出每一行數據。

六、更新數據

在nodesqlite3中更新數據可以使用Database對象中的run()方法,例如下面的代碼示例將會更新users表中id為1的記錄的密碼:

// 更新數據
db.run(`UPDATE users SET password = ? WHERE id = ?`,
  ['newpassword', 1],
  (err) => {
    if (err) {
      console.error(err.message);
    }
    console.log('Password updated.');
  });

在這個示例中,我們使用了?佔位符來表示更新數據時傳入的參數,這可以防止SQL注入攻擊。

七、刪除數據

在nodesqlite3中刪除數據可以使用Database對象中的run()方法,注意刪除操作的sql語句,例如下面的代碼示例將會刪除users表中id為1的記錄:

// 刪除數據
db.run(`DELETE FROM users WHERE id = ?`, 1, (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Record deleted.');
});

八、關閉數據庫連接

在完成對數據庫的操作後,需要調用Database對象中的close()方法來關閉數據庫連接,例如下面的代碼示例:

// 關閉數據庫連接
db.close((err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Close the database connection.');
});

九、總結

本文介紹了如何使用nodesqlite3模塊將Sqlite集成到Node.js中,並且使用該模塊提供的API對Sqlite數據庫進行了操作。包括連接到數據庫、執行SQL語句、查詢數據、更新數據、刪除數據、關閉數據庫連接等方面的內容。通過學習本文,我們可以了解如何在Node.js中使用Sqlite數據庫。

原創文章,作者:LKFM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133639.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
LKFM的頭像LKFM
上一篇 2024-10-04 00:00
下一篇 2024-10-04 00:00

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何解決Node.js中jwt.sign()響應過慢的問題

    本文將從多個方面探討如何解決Node.js中jwt.sign()響應過慢的問題,給出完整的代碼示例與最佳實踐,幫助開發者更好地處理這個問題。 一、問題概述 在使用Node.js編寫…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • 如何反混淆美團slider.js

    本文將從多個方面詳細闡述如何反混淆美團slider.js。在開始之前,需要明確的是,混淆是一種保護JavaScript代碼的方法,其目的是使代碼難以理解和修改。因此,在進行反混淆操…

    編程 2025-04-27
  • Python要學JS嗎?

    Python和JavaScript都是非常受歡迎的編程語言。然而,你可能會問,既然我已經學了Python,是不是也需要學一下JS呢?在本文中,我們將圍繞這個問題進行討論,並從多個角…

    編程 2025-04-27
  • 解決js ajax post 419問題

    對於使用ajax post請求時出現的419問題,我們需要進行以下幾個方面的闡述,包括返回碼的含義、可能出現的情況、解決方案等內容。 一、解析419返回碼 419返回碼錶示用戶超時…

    編程 2025-04-27

發表回復

登錄後才能評論