Node.js操作mysql數據庫

依賴的包

  • nodejs操作數據庫需要依賴的包mysql,參考文檔連接

mysql包的基本使用

  • 創建項目,初始化項目npm init -y
  • 安裝mysql包(最新版本) npm install mysqljs/mysql
  • 創建connectDB.js文件,用以下代碼測試能否正確連接數據庫,正常連接時輸出 ‘The solution is: 2’
//加載數據庫驅動
const mysql = require('mysql');

//創建數據庫連接
const connection = mysql.createConnection({
  host: 'localhost',  //數據庫所在服務器的ip或者域名
  user: 'root',  //登錄數據庫的賬號
  password: 'rootpass',   //登錄數據庫的密碼
  database: 'library'  //連接的數據庫名稱
});

connection.connect();  //執行連接操作

//操作數據庫
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

//關閉連接
connection.end();

插入操作(增)

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

connection.connect();

//執行插入操作
let sql = 'insert into book set ?';
let data = {
  name: '圖書名稱',
  author: '圖書作者',
  category: '圖書分類',
  description: '圖書簡述'
}
connection.query(sql, data, function (error, results, fields) {
  if (error) throw error;
  if (results.affectedRows == 1) { console.log('插入成功') };
  //執行插入成功返回的results
  // OkPacket {
  //   fieldCount: 0,
  //   affectedRows: 1,
  //   insertId: 7,
  //   serverStatus: 2,
  //   warningCount: 0,
  //   message: '',
  //   protocol41: true,
  //   changedRows: 0
  // }
});

connection.end();

刪除操作(刪)

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

connection.connect();

//執行刪除操作
let sql = 'delete from book where id=?';
let data = [7];
connection.query(sql, data, function (error, results, fields) {
  if (error) throw error;
  if (results.affectedRows == 1) {
    console.log('刪除成功');
  }
})
connection.end();

查詢操作(查)

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

connection.connect();

//查詢操作
let sql = 'select * from book';
let data = null;
connection.query(sql, data, function (error, results, fields) {
  if (error) throw error;
  console.log(results);  //返回對象數組,results[0]獲取第一條
})
connection.end();

更新操作(改)

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

connection.connect();


//執行更新操作
let sql = 'update book set name=?,author=?,category=?,description=? where id=?';
let data = ['巨人的隕落', '肯·福萊特', '小說', '描述了在第一次世界大戰時,發生在一些人身上的故事', 7];
connection.query(sql, data, function (error, results, fields) {
  if (error) throw error;
  if (results.affectedRows == 1) {
    console.log('更新成功');
  }
})

connection.end();

mysql數據庫通用操作封裝

//connectDB.js
const mysql = require('mysql');

exports.base = (sql, data, callback) => {
  const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'rootpass',
    database: 'library'
  });

  connection.connect();

  connection.query(sql, data, function (error, results, fields) {
    if (error) throw error;
    callback(results);  //數據庫操作是異步的,所以通過回調函數返回操作結果
  })
  connection.end();
}

測試:

//testDB.js
const db = require('./connectDB.js');

let sql = 'insert into book set ?';
let data = {
  name: '圖書名稱',
  author: '圖書作者',
  category: '圖書分類',
  description: '圖書簡述'
}

db.base(sql, data, (results) => {
  console.log(results);
})
發佈了54 篇原創文章 · 獲贊 13 · 訪問量 9147
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章