微服務管理平臺nacos虛擬ip負載均衡集群模式搭建
907
2025-04-01
一、創建項目
(1)使用WebStorm創建node-mysql項目
(2)創建完成后,項目會自動打開,如下圖
二、node.js使用mysql
1、安裝mysql模塊
Node.js連接MySQL使用的是mysql模塊,在WebStorm的Terminal中使用npm安裝mysql:
npm install mysql
安裝完成如下圖:
2、連接數據庫
mysql模塊通過createConnection()方法創建MySQL連接。如下代碼就和服務器172.16.2.105的MySql數據庫node_test建立了連接。
測試代碼:
//引入mysql模塊 const mysql = require('mysql'); //創建連接 const connection = mysql.createConnection({ host: '172.16.2.105', user: 'root', password: 'root', database: 'node_test' }); //連接mysql connection.connect(function (err) { //連接出錯的處理 if (err) { console.error('連接錯誤:' + err.stack); return; } console.log('連接成功,線程ID為:' + connection.threadId); });
測試結果:
代碼說明:
createConnection()方法用于創建連接,connection.connect()方法用于判斷連接是否成功。createConnection()方法用于接受一個json對象參數。json對象主要使用的字段有:
host:需要連接數據庫地址,默認為localhost port:連接地址端口默認為3306 user:連接MySQL時使用的用戶名 password:用戶名對應的密碼 database:所需要連接的數據庫的名稱
3、關閉數據庫連接
(1)通過end()方法可以正常地終止一個連接
connection.end(function (err) { console.log(err); });
(2)使用destroy()方法也可以終止連接。該方法會立即終止底層套接字,不會觸發更多的事件和回調函數。
connection.destroy();
4、保存數據
連接MySQL成功后,就需要通過Node.js來操作數據庫了。mysql模塊提供了一個名為query()的方法,可以用來執行SQL語句,從而對MySql數據庫進行相應的操作。
測試代碼:
//引入mysql模塊 const mysql = require('mysql'); //創建連接 const connection = mysql.createConnection({ host: '172.16.2.105', user: 'root', password: 'root', database: 'node_test' }); //連接mysql connection.connect(); const addSql = 'insert into users(name,age,sex) values(?,?,?)'; const addSqlParams = ['張三', 18, '男']; // 添加數據 connection.query(addSql, addSqlParams, function (err, result) { if (err) { console.log('數據保存失敗:', err.message); return; } console.log('數據保存成功:', result); }); connection.end();
測試結果:
提示保存成功,查看數據庫,可以看到數據已經保存到users表中:
代碼說明:
query方法可以根據不同的sql執行不同的操作,除了新增數據外也支持修改、查詢和刪除數據。
4、查詢數據
使用mongoose可以查詢mongodb相應的數據。如下代碼可以將users這個collection中的所有文檔查詢出來:
測試代碼1:
//引入mysql模塊 const mysql = require('mysql'); //創建連接 const connection = mysql.createConnection({ host: '172.16.2.105', user: 'root', password: 'root', database: 'node_test' }); //連接mysql connection.connect(); const selectSql = 'select name,age,sex from users'; // 添加數據 connection.query(selectSql, function (err, result) { if (err) { console.log('數據查詢失敗:', err.message); return; } console.log('數據查詢成功,結果集為:', result); }); connection.end();
測試結果1:
代碼說明1:
這段代碼通過sql查詢users表中所有數據,也可以給sql添加查詢條件進行精確查詢,代碼如下:
測試代碼2:
//引入mysql模塊 const mysql = require('mysql'); //創建連接 const connection = mysql.createConnection({ host: '172.16.2.105', user: 'root', password: 'root', database: 'node_test' }); //連接mysql connection.connect(); const selectSql = 'select name,age,sex from users where name=?'; const selectSqlParams = ['張三']; // 添加數據 connection.query(selectSql, selectSqlParams, function (err, result) { if (err) { console.log('數據查詢失敗:', err.message); return; } console.log('數據查詢成功,結果集為:', result); }); connection.end();
運行這段代碼只查詢出name是”張三“的數據:
5、修改數據
測試代碼:
//引入mysql模塊 const mysql = require('mysql'); //創建連接 const connection = mysql.createConnection({ host: '172.16.2.105', user: 'root', password: 'root', database: 'node_test' }); //連接mysql connection.connect(); const updateSql = 'update users set name=?,age=?,sex=? where id=?'; const updateSqlParams = ['趙六', 23, '男', 3]; // 添加數據 connection.query(updateSql, updateSqlParams, function (err, result) { if (err) { console.log('數據更新失敗:', err.message); return; } console.log('數據更新成功:', result); }); connection.end();
測試結果:
通過Navicat查看數據庫,數據已經更新:
6、刪除數據
測試代碼:
//引入mysql模塊 const mysql = require('mysql'); //創建連接 const connection = mysql.createConnection({ host: '172.16.2.105', user: 'root', password: 'root', database: 'node_test' }); //連接mysql connection.connect(); const deleteSql = 'delete from users where id=?'; const deleteSqlParams = [3]; // 添加數據 connection.query(deleteSql, deleteSqlParams, function (err, result) { if (err) { console.log('數據刪除失敗:', err.message); return; } console.log('數據刪除成功:', result); }); connection.end();
測試結果:
通過Navicat查看數據庫,id為3的數據已經刪除:
JavaScript MySQL SQL 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。