一、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數據庫的步驟如下:
- 安裝MySQL模塊
- 使用require語句導入MySQL模塊
- 使用mysql.createConnection()方法創建與MySQL數據庫的連接,並指定連接所需的參數
- 在回調函數中處理連接成功或連接失敗的情況
- 使用connection.query()方法執行SQL語句,並在回調函數中處理返回的數據
- 使用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-hant/n/195512.html