Node.js連接MySQL

一、Node.js連接MySQL資料庫

在Node.js中,有很多第三方MySQL模塊可以使用。常見的有mysql、mysql2、node-mysql和node-mysql2等。這些模塊提供的API都比較相似,可以根據自己的需求選擇一個使用。

以下是使用mysql模塊連接MySQL資料庫的示例代碼:

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'yourpassword',
  database: 'yourdatabase'
});

connection.connect((err) => {
  if (err) throw err;
  console.log('Connected!');
});

connection.end();

在上述代碼中,首先通過require語句導入mysql模塊。然後使用mysql.createConnection()方法創建與MySQL資料庫的連接,並指定連接所需的參數。在連接成功後,可以在回調函數中輸出Connected!以測試連接是否成功。最後,通過connection.end()方法關閉與MySQL資料庫的連接。

二、Node.js連接MySQL8.0

MySQL8.0在安全性方面有了很大的提升,如果使用默認的加密方式連接MySQL8.0,可能會遇到兼容性問題。為了解決這個問題,可以通過在連接參數中配置ssl選項,將加密方式指定為required。

以下是修改連接參數以支持MySQL8.0的示例代碼:

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'yourpassword',
  database: 'yourdatabase',
  ssl: {
    rejectUnauthorized: false,
    ca: fs.readFileSync('/path/to/ca.pem')
  }
});

connection.connect((err) => {
  if (err) throw err;
  console.log('Connected!');
});

connection.end();

在上述代碼中,添加了一個ssl選項,其中rejectUnauthorized: false表示不驗證SSL證書,ca: fs.readFileSync(‘/path/to/ca.pem’)表示使用指定的SSL證書。

三、Node.js連接MySQL使用什麼介面

在Node.js中,可以選擇使用原生的MySQL模塊,也可以選擇使用第三方的MySQL模塊。原生的MySQL模塊使用起來比較複雜,需要手動編寫SQL語句,並處理返回的數據。而第三方的MySQL模塊通常提供了更簡單易用的API。

以下是使用原生的MySQL模塊查詢資料庫的示例代碼:

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'yourpassword',
  database: 'yourdatabase'
});

const sql = 'SELECT * FROM yourtable';

connection.query(sql, (err, results, fields) => {
  if (err) throw err;
  console.log(results);
});

connection.end();

在上述代碼中,使用connection.query()方法執行SQL語句,並在回調函數中處理返回的數據。

以下是使用第三方的mysql2模塊查詢資料庫的示例代碼:

const mysql = require('mysql2/promise');

const connection = await mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'yourpassword',
  database: 'yourdatabase'
});

const sql = 'SELECT * FROM yourtable';

const [rows, fields] = await connection.execute(sql);
console.log(rows);

await connection.end();

在上述代碼中,使用async/await語法執行SQL語句,並通過connection.execute()方法處理返回的數據。同時,使用await connection.end()方法關閉與MySQL資料庫的連接。

四、Node.js連接MySQL的步驟

連接MySQL資料庫的步驟如下:

  1. 安裝MySQL模塊
  2. 使用require語句導入MySQL模塊
  3. 使用mysql.createConnection()方法創建與MySQL資料庫的連接,並指定連接所需的參數
  4. 在回調函數中處理連接成功或連接失敗的情況
  5. 使用connection.query()方法執行SQL語句,並在回調函數中處理返回的數據
  6. 使用connection.end()方法關閉與MySQL資料庫的連接

五、Node.js連接MySQL資料庫失敗

如果連接MySQL資料庫失敗,可能會出現以下錯誤:

  • ER_ACCESS_DENIED_ERROR:訪問被拒絕,用戶名或密碼不正確
  • ER_BAD_DB_ERROR:資料庫不存在或無法訪問
  • ETIMEDOUT:連接超時
  • ECONNREFUSED:連接被拒絕
  • ER_HOST_IS_BLOCKED:主機被屏蔽

如果遇到連接失敗的情況,可以通過在回調函數中處理錯誤來查找問題所在。

六、Node.js連接MySQL資料庫增刪改查

在Node.js中,可以使用SQL語句對MySQL資料庫進行增刪改查操作。以下是一些常見的SQL語句:

  • SELECT:查詢數據
  • INSERT INTO:插入數據
  • UPDATE:更新數據
  • DELETE:刪除數據

在使用SQL語句時,需要注意安全性和一致性。可以通過參數化查詢等方式來防止SQL注入攻擊。

七、Node.js連接MySQL資料庫query

Node.js中的mysql模塊提供了一個query方法,可以直接執行SQL語句並返回結果。以下是一個使用query方法查詢MySQL資料庫的示例代碼:

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'yourpassword',
  database: 'yourdatabase'
});

const sql = 'SELECT * FROM yourtable';

connection.query(sql, (err, results, fields) => {
  if (err) throw err;
  console.log(results);
});

connection.end();

在上述代碼中,使用connection.query()方法執行SQL語句,並在回調函數中處理返回的結果。

八、Node.js連接MongoDB

與MySQL不同,MongoDB是一個基於文檔的NoSQL資料庫。在Node.js中,可以使用mongoose模塊來連接MongoDB資料庫。以下是一個使用mongoose連接MongoDB的示例代碼:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/yourdatabase', {
  useNewUrlParser: true,
  useUnifiedTopology: true
}).then(() => {
  console.log('Connected!');
}).catch((err) => {
  console.error(err);
});

在上述代碼中,使用mongoose.connect()方法連接MongoDB資料庫,並指定連接所需的參數。然後可以在then方法中輸出Connected!以測試連接是否成功。

九、Node.js連接SQLite

在Node.js中,可以使用sqlite3模塊來連接SQLite資料庫。以下是一個使用sqlite3連接SQLite資料庫的示例代碼:

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

const db = new sqlite3.Database('yourdatabase.sqlite');

db.serialize(() => {
  db.run('CREATE TABLE yourtable (id INT, name TEXT)');
  db.run('INSERT INTO yourtable VALUES (?, ?)', [1, 'Alice']);
  db.get('SELECT * FROM yourtable WHERE id = ?', [1], (err, row) => {
    console.log(row);
  });
});

db.close();

在上述代碼中,首先使用sqlite3.Database()方法連接SQLite資料庫,然後使用db.run()方法執行SQL語句創建表格和插入數據。最後使用db.get()方法查詢數據。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/195512.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 20:35
下一篇 2024-12-02 20:35

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • JS Proxy(array)用法介紹

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

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

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

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

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

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

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

    編程 2025-04-29
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

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

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

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL資料庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

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

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

    編程 2025-04-27

發表回復

登錄後才能評論