Node.js對MySQL數據庫的增刪改查實戰(zhàn)記錄
在項目中操作數據庫的三大步驟
- 安裝操作 MySQL 數據庫的第三方模塊(mysql)
- 通過 mysql 模塊連接到 MySQL 數據庫
- 通過 mysql 模塊執(zhí)行 SQL 語句
操作數據庫的具體步驟
一:安裝MySQL模塊及express模塊
MySQL模塊是托管于npm上的第三方模塊,我們可以運行下方命令安裝MySQL第三方包,通過它來建立node.js項目與MySQL數據庫的連接,進而操作數據庫(以下代碼在終端中運行)
//安裝mysql第三方模塊 npm i mysql //安裝express第三方模塊 npm i express
二:通過express創(chuàng)建一個服務器
// 引入express const express = require('express'); // 創(chuàng)建服務器 const app = express(); // 啟動服務器 app.listen(80, () => { console.log('http://127.0.0.1'); })
三:配置MySQL模塊
在使用 MySQL 模塊操作 MySQL 數據庫之前,必須先對 mysql模塊進行必要的配置,主要的配置步驟如下:
// 1.引入mysql const mysql = require('mysql'); // 2.建立與mysql數據庫連接 var db = mysql.createPool({ host: '127.0.0.1', // 數據庫的 ip 地址 user: 'root', // 登錄數據庫的賬號 password: '123456', // 登錄數據庫的密碼 database: 'web67' // 指定要操作哪個數據庫 });
四:測試 mysql 模塊能否正常工作
調用 db.query() 函數,指定要執(zhí)行的 SQL 語句,通過回調函數拿到執(zhí)行的結果
// 測試mysql模塊是否能正常運行,查找所有數據并顯示至頁面 db.query('select * from one', (err, data) => { if (err) return console.log(err.message); if (data.length === 0) return console.log('數據庫無數據'); console.log(data) //data是從數據庫中查找到的數據 }) });
以上代碼全部準備完畢后開始對MySQL數據庫中的數據進行增刪改查:
SELECT:查詢one數據表中所有的數據:
案例代碼:
// 獲取數據庫中的數據 app.get('/selectuser', (req, res) => { // 查看數據庫連接是否成功 db.query('select * from one', (err, data) => { //err不為空則表示錯誤 if (err) return console.log(err.message); if (data.length === 0) return console.log('獲取失敗'); res.send(data) }) });
INSERT INTO:向數據庫中添加數據:
案例代碼:
這里用到了post請求,需要通過req.body接收客戶端請求的數據,并通過app.use(express.urlencoded({extended:false}))代碼行將數據進行解析(見下方完整代碼)
// 向數據庫添加數據 app.post('/insertuser', (req, res) => { // 接收客戶端請求的數據 const body = req.body; // 構建sql語句 const sql = 'insert into one set ?' // 將客戶請求的數據插入到數據庫中 db.query(sql, body, (err, data) => { if (err) return console.log(err.message); if (data.affectedRows !== 1) return console.log('添加失敗'); res.send({ status: 0, msg: '添加數據成功' }) }) })
UPADTE:修改數據庫中的數據:
案例代碼:
// 修改數據庫中數據 app.post('/updateuser', (req, res) => { //接收客戶端請求的數據 const body = req.body; //構建修改的sql語句 const sql = 'update one set uname=? where id=?'; db.query(sql, [body.uname, body.id], (err, data) => { if (err) return console.log(err.message); if (data.affectedRows !== 1) return console.log('修改失敗'); res.send({ status: 0, msg: '修改數據成功' }) }) })
DELETE:刪除數據庫中的數據:
案例代碼:
// 刪除數據庫中的數據 app.get('/deleteuser/:id', (req, res) => { // 獲取客戶端提交的數據,req.params通過:冒號匹配動態(tài)參數 const id = req.params.id; // 構建刪除的sql語句,一般為了防止數據被永久性刪除,我們會通過update將該條數據對應的 狀態(tài)碼先修改為0 const sql = 'update one set status=0 where id=?'; // 執(zhí)行sql db.query(sql, id, (err, data) => { if (err) return console.log(err.message); if (data.affectedRows !== 1) return console.log('刪除失敗'); res.send({ status: 0, msg: '刪除成功' }) }) })
到這里通過express中間件對MySQL數據庫的增刪改查就完成啦,【完整代碼】如下:
// 通過express中間件實現對mysql數據庫的增刪改查 const express = require('express'); // 創(chuàng)建一個服務器 const app = express(); // 解析客戶端請求的數據 app.use(express.urlencoded({ extended: false })); // 引入mysql操作數據庫 const mysql = require('mysql'); // 配置數據庫 const db = mysql.createPool({ host: '127.0.0.1', //數據庫ip地址 user: 'root', //數據庫賬號 password: '123456', //數據庫密碼 database: 'web67' //數據庫名稱 }); // 獲取數據庫中的數據 app.get('/selectuser', (req, res) => { // 查看數據庫連接是否成功 db.query('select * from one', (err, data) => { if (err) return console.log(err.message); if (data.length === 0) return console.log('獲取失敗'); res.send(data) }) }); // 向數據庫添加數據 app.post('/insertuser', (req, res) => { // 接收客戶端請求的數據 const body = req.body; // 構建sql語句 const sql = 'insert into one set ?' // 將客戶請求的數據插入到數據庫中 db.query(sql, body, (err, data) => { if (err) return console.log(err.message); if (data.affectedRows !== 1) return console.log('添加失敗'); res.send({ status: 0, msg: '添加數據成功' }) }) }) // 修改數據庫中數據 app.post('/updateuser', (req, res) => { const body = req.body; const sql = 'update one set uname=? where id=?'; db.query(sql, [body.uname, body.id], (err, data) => { if (err) return console.log(err.message); if (data.affectedRows !== 1) return console.log('修改失敗'); res.send({ status: 0, msg: '修改數據成功' }) }) }) // 刪除數據庫中的數據(指定id) app.get('/deleteuser/:id', (req, res) => { const id = req.params.id; //id為動態(tài)參數,所以要通過req.params獲取 const sql = 'update one set status=0 where id=?' db.query(sql, id, (err, data) => { if (err) return console.log(err.message); if (data.affectedRows !== 1) return console.log('刪除數據失敗'); res.send({ status: 0, msg: '刪除成功' }) }) }) // 啟動服務器 app.listen(80, () => { console.log('http://127.0.0.1'); })
總結
到此這篇關于Node.js對MySQL數據庫增刪改查的文章就介紹到這了,更多相關Node.js對MySQL增刪改查內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- node.js 開發(fā)指南 – Node.js 連接 MySQL 并進行數據庫操作
- Node.js數據庫操作之查詢MySQL數據庫(二)
- Node.js下向MySQL數據庫插入批量數據的方法
- Node.js操作mysql數據庫增刪改查
- Node.js數據庫操作之連接MySQL數據庫(一)
- node.js平臺下的mysql數據庫配置及連接
- 從零學習node.js之mysql數據庫的操作(五)
- Linux下為Node.js程序配置MySQL或Oracle數據庫的方法
- Node.js實現連接mysql數據庫功能示例
- node.js如何操作MySQL數據庫
- Node.js實現http請求服務與Mysql數據庫操作方法詳解
- node.js對于數據庫MySQL基本操作實例總結【增刪改查】
相關文章
MYSQL ON UPDATE CURRENT_TIMESTAMP當字段值發(fā)生改變時才會更
本文主要介紹了MYSQL ON UPDATE CURRENT_TIMESTAMP當字段值發(fā)生改變時才會更新記錄的時間,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01