Node.js數據庫開發實戰之mysql

      網友投稿 907 2025-04-01

      一、創建項目

      Node.js數據庫開發實戰之mysql

      (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小時內刪除侵權內容。

      上一篇:ERP軟件在制造業中的最大優勢:改進的決策
      下一篇:excel偏移公式的使用方法
      相關文章
      综合偷自拍亚洲乱中文字幕| 亚洲AV电影天堂男人的天堂| 亚洲AⅤ永久无码精品AA | 亚洲精品99久久久久中文字幕| 亚洲国产AV无码一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 亚洲精品国产精品国自产网站 | 亚洲国产婷婷综合在线精品| 亚洲国产日韩在线观频| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 伊人久久综在合线亚洲2019| 久久夜色精品国产噜噜亚洲AV| 亚洲国产成人久久精品动漫| 亚洲人成电影福利在线播放| 91久久亚洲国产成人精品性色| 亚洲精彩视频在线观看| 亚洲免费人成视频观看| 亚洲xxxx视频| www亚洲精品久久久乳| 大胆亚洲人体视频| 久久久久无码专区亚洲av| 亚洲精品自产拍在线观看| 久久久久亚洲精品无码系列| 久久精品亚洲精品国产色婷| 亚洲妇女水蜜桃av网网站| 亚洲色大成网站www久久九| 狠狠入ady亚洲精品| 亚洲色图综合在线| 亚洲国产精彩中文乱码AV| 亚洲黄色中文字幕| 亚洲视频在线观看2018| 色噜噜噜噜亚洲第一| 久久久久久亚洲精品不卡| 久久久久亚洲AV成人无码| 亚洲成人福利网站| 亚洲国产精品久久久久秋霞小| 亚洲国产精品一区二区第一页免 | 亚洲精品无码久久一线| 亚洲第一区香蕉_国产a| 亚洲国产成人精品电影| 亚洲heyzo专区无码综合|