依賴的包
- 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);
})