欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js對MySQL數據庫的增刪改查實戰(zhàn)記錄

 更新時間:2021年10月12日 14:56:30   作者:SunFlower914  
這篇文章主要給大家介紹了關于Node.js對MySQL數據庫的增刪改查的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作介紹的非常詳細,需要的朋友可以參考下

在項目中操作數據庫的三大步驟

  1. 安裝操作 MySQL 數據庫的第三方模塊(mysql)
  2. 通過 mysql 模塊連接到 MySQL 數據庫
  3. 通過 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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解MySQL中事務隔離級別的實現原理

    詳解MySQL中事務隔離級別的實現原理

    這篇文章主要介紹了MySQL中事務隔離級別的實現原理,幫助大家更好的理解和使用MySQL數據庫,感興趣的朋友可以了解下
    2021-01-01
  • MYSQL ON UPDATE CURRENT_TIMESTAMP當字段值發(fā)生改變時才會更新記錄的時間

    MYSQL ON UPDATE CURRENT_TIMESTAMP當字段值發(fā)生改變時才會更

    本文主要介紹了MYSQL ON UPDATE CURRENT_TIMESTAMP當字段值發(fā)生改變時才會更新記錄的時間,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • mysql中的mvcc?原理詳解

    mysql中的mvcc?原理詳解

    MVCC多版本并發(fā)控制,是用來在數據庫中控制并發(fā)的方法,實現對數據庫的并發(fā)訪問用的,這篇文章主要介紹了mysql?mvcc?原理詳解,需要的朋友可以參考下
    2022-10-10
  • Centos7安裝和配置Mysql5.7

    Centos7安裝和配置Mysql5.7

    網上關于Linux安裝mysql數據庫的教程數不勝數,但是,大多教程都是漏洞百出。今天,為了幫助各位需要的人,從而寫下Centos7安裝配置mysql5.7的教程。
    2018-02-02
  • MySQL配置文件my.ini全過程

    MySQL配置文件my.ini全過程

    這篇文章主要介紹了MySQL配置文件my.ini全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • mysql 數據庫安裝經驗問題匯總

    mysql 數據庫安裝經驗問題匯總

    這篇文章主要介紹了mysql 數據庫安裝經驗問題匯總,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • MySQL執(zhí)行時間的查詢

    MySQL執(zhí)行時間的查詢

    這篇文章主要介紹了MySQL執(zhí)行時間的查詢,查詢頻繁的數據庫和查詢執(zhí)行時間長的sql,文章中有詳細的代碼實例,感興趣的同學可以參考閱讀
    2023-04-04
  • MySQL 8.0 之不可見列的基本操作

    MySQL 8.0 之不可見列的基本操作

    MySQL8.0.23之后引入了不可見列,今天我們來說說這個特性的基本使用,感興趣的朋友可以了解下
    2021-05-05
  • mysql 操作總結 INSERT和REPLACE

    mysql 操作總結 INSERT和REPLACE

    用于操作數據庫的SQL一般分為兩種,一種是查詢語句,也就是我們所說的SELECT語句,另外一種就是更新語句,也叫做數據操作語句。
    2009-07-07
  • mysql8.0無法使用group by的問題及解決

    mysql8.0無法使用group by的問題及解決

    這篇文章主要介紹了mysql8.0無法使用group by的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評論