最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js如何在項目中操作MySQL

 更新時間:2022年01月13日 10:17:10   作者:bear*6  
這篇文章主要介紹了Node.js如何在項目中操作MySQL,從而實現(xiàn)數(shù)據(jù)的查詢、插入、更新和刪除等操作,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1、在項目中操作 MySQL的步驟

(1)安裝操作 MySQL 數(shù)據(jù)庫的第三方模塊(mysql)

(2)通過 mysql 模塊連接到 MySQL 數(shù)據(jù)庫

(3)通過 mysql 模塊執(zhí)行 SQL 語句

在這里插入圖片描述

2、安裝與配置 mysql 模塊

1、安裝 mysql 模塊

Mysql 模塊是托管于 npm 上的第三方模塊。它提供了在 Node.js 項目中連接和操作 MySQL 數(shù)據(jù)庫的能力。

想要在項目中使用它,需要先運行如下命令,將 mysql 安裝為項目的依賴包:

npm install mysql

如下:

在這里插入圖片描述

2、配置 mysql 模塊

如下圖,我的MySQL 數(shù)據(jù)庫中有如下數(shù)據(jù):

在這里插入圖片描述

在使用 mysql 模塊操作 MySQL 數(shù)據(jù)庫之前,必須先對 mysql 模塊進(jìn)行必要的配置,主要的配置步驟如下:

//導(dǎo)入模塊
const mysql = require('mysql')
//建立與mysql數(shù)據(jù)庫的聯(lián)系
const db = mysql.createPool({
    host:'127.0.0.1',   //數(shù)據(jù)庫的IP地址
    user:'root',        //登錄數(shù)據(jù)庫的賬號
    password:'******',//登錄數(shù)據(jù)庫的密碼
    database:'bear2'     //指定要操作哪個數(shù)據(jù)庫
})

3、測試 mysql 模塊能否正常工作

調(diào)用 db.query() 函數(shù),指定要執(zhí)行的 SQL 語句,通過回調(diào)函數(shù)拿到執(zhí)行的結(jié)果:

//測試mysql能否正常工作
db.query('SELECT 1',(err,results)=>{
    if(err) return console.log(err.message)
    //能夠成功的執(zhí)行SQL語句
    console.log(results)
})

測試結(jié)果為:

在這里插入圖片描述

3、使用 mysql 模塊操作 MySQL 數(shù)據(jù)庫

1、查詢數(shù)據(jù)

查詢 student 表中所有的數(shù)據(jù):

db.query('SELECT * FROM STUDENT',(err,results)=>{
    //查詢失敗
    if(err) return console.log(err.message)
    //查詢成功
    console.log(results)
})

結(jié)果為:

在這里插入圖片描述

查詢成功,且得到的結(jié)果是一個數(shù)組。

2、插入數(shù)據(jù)

student表中新增數(shù)據(jù), 其中 cname'小延'age16。示例代碼如下:

//要插入到student表中的數(shù)據(jù)對象
const student = {cname:'小延',age:16}
//待執(zhí)行的SQL語句,其中英文的?表示占位符
const sqlStr = 'INSERT INTO student(cname,age)VALUES(?,?)'
//使用數(shù)組的形式,依次為占位符指定具體的值
db.query(sqlStr,[student.cname,student.age],(err,results)=>{
    if(err) return console.log(err.message) //失敗
    if(results.affectedRows === 1){
        console.log('插入成功') //成功
    }
})

結(jié)果為:

在這里插入圖片描述

打開數(shù)據(jù)庫,查看數(shù)據(jù),即:

在這里插入圖片描述

數(shù)據(jù)插入成功。

3、插入數(shù)據(jù)的便捷方式

向表中新增數(shù)據(jù)時,如果數(shù)據(jù)對象的每個屬性和數(shù)據(jù)表的字段一一對應(yīng),則可以通過如下方式快速插入數(shù)據(jù):

//要插入到student表中的數(shù)據(jù)對象
const student = {cid:9,cname:'小楊',age:18,class_id:1002}
//待執(zhí)行的SQL語句,其中英文的?表示占位符
const sqlStr = 'INSERT INTO student SET ?'
//直接將數(shù)據(jù)對象當(dāng)做占位符的值
db.query(sqlStr,student,(err,results)=>{
    if(err) return console.log(err.message) //失敗
    if(results.affectedRows === 1) console.log('插入數(shù)據(jù)成功!')
})

結(jié)果為:

在這里插入圖片描述

打開數(shù)據(jù)庫,查看數(shù)據(jù),即:

在這里插入圖片描述

數(shù)據(jù)插入成功。

4、更新數(shù)據(jù)

可以通過如下方式,更新表中的數(shù)據(jù):

//要更新的數(shù)據(jù)對象
const student = {cid: 8, cname: '小欣', age: 18, class_id: 1002}
//要執(zhí)行的SQL語句
const sqlStr = 'UPDATE student SET cname=?,age=?,class_id=? WHERE cid=?'
//調(diào)用db.query()執(zhí)行SQL語句的同時,使用數(shù)組依次為占位符指定具體的值
db.query(sqlStr,[student.cname,student.age,student.class_id],(err,results)=>{
    if(err) return console.log(err.message) //失敗
    if(results.affectedRows === 1) {
        console.log('更新數(shù)據(jù)成功!')
    }
})

結(jié)果為:

在這里插入圖片描述

打開數(shù)據(jù)庫,查看數(shù)據(jù),即:

在這里插入圖片描述

數(shù)據(jù)更新成功。

5、更新數(shù)據(jù)的便捷方式

更新表數(shù)據(jù)時,如果數(shù)據(jù)對象的每個屬性和數(shù)據(jù)表的字段一一對應(yīng),則可以通過如下方式快速更新表數(shù)據(jù):

const student = {cid:1,cname:'小鈺',age:17,class_id:1003}
//要執(zhí)行的SQL語句
const sqlStr = 'UPDATE student SET ? WHERE cid=?'
調(diào)用db.query()執(zhí)行SQL語句的同時,使用數(shù)組依次為占位符指定具體的值
db.query(sqlStr,[student,student.cid],(err,results)=>{
    if(err) return console.log(err.message) //失敗
    if(results.affectedRows === 1){
        console.log('數(shù)據(jù)更新成功!')  //成功
    }
})

結(jié)果為:

在這里插入圖片描述

打開數(shù)據(jù)庫,查看數(shù)據(jù),即:

在這里插入圖片描述

數(shù)據(jù)更新成功。

6、刪除數(shù)據(jù)

在刪除數(shù)據(jù)時,最好根據(jù) cid 這樣的唯一標(biāo)識,來刪除對應(yīng)的數(shù)據(jù)。示例如下:

//要執(zhí)行的SQL語句
const sqlStr = 'DELETE FROM student WHERE cid=?'
//調(diào)用db.query()執(zhí)行sql語句的同時,為占位符指定確定的值
db.query(sqlStr,3,(err,results)=>{
    if(err) return console.log(err.message)
    if(results.affectedRows === 1){  // 失敗
        console.log('刪除數(shù)據(jù)成功!') //成功
    }
})

結(jié)果為:

在這里插入圖片描述

打開數(shù)據(jù)庫,查看數(shù)據(jù),即:

在這里插入圖片描述

刪除數(shù)據(jù)成功。

需要注意的是:如果SQL語句有多個占位符,則必須為每個占位符指定具體的值,如果SQL語句只有一個占位符,則可以省略數(shù)組。

7、標(biāo)記刪除

使用 DELETE 語句,會把真正的把數(shù)據(jù)從表中刪除掉。為了保險起見,推薦使用標(biāo)記刪除的形式,來模擬刪除的動作。

所謂的標(biāo)記刪除,就是在表中設(shè)置類似于 class_id 這樣的狀態(tài)字段,來標(biāo)記當(dāng)前這條數(shù)據(jù)是否被刪除。

當(dāng)用戶執(zhí)行了刪除的動作時,我們并沒有執(zhí)行 DELETE 語句把數(shù)據(jù)刪除掉,而是執(zhí)行了 UPDATE 語句,將這條數(shù)據(jù)對應(yīng)的class_id字段標(biāo)記為刪除即可。

//標(biāo)記刪除:使用UPDATE語句代替DELETE語句;只更新數(shù)據(jù)的狀態(tài),并沒有真正刪除。
db.query('UPDATE student SET class_id=? WHERE cid=?',[1000,6],(err,results)=>{
    if(err) return console.log(err.message)
    if(results.affectedRows === 1){  // 失敗
        console.log('標(biāo)記刪除成功!') //成功
    }
})

結(jié)果為:

在這里插入圖片描述

打開數(shù)據(jù)庫,查看數(shù)據(jù),即:

在這里插入圖片描述

標(biāo)記刪除成功。

以上就是Node.js如何在項目中操作MySQL的詳細(xì)內(nèi)容,更多關(guān)于Node.js操作MySQL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Nodejs之npm&package.json

    詳解Nodejs之npm&package.json

    本篇文章主要介紹了詳解Nodejs之npm&package.json,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Node.js Buffer模塊功能及常用方法實例分析

    Node.js Buffer模塊功能及常用方法實例分析

    這篇文章主要介紹了Node.js Buffer模塊功能及常用方法,結(jié)合實例形式分析了Buffer模塊的各種常用函數(shù)及相關(guān)使用技巧,需要的朋友可以參考下
    2019-01-01
  • node使用async_hooks模塊進(jìn)行請求追蹤

    node使用async_hooks模塊進(jìn)行請求追蹤

    這篇文章主要介紹了node使用async_hooks模塊進(jìn)行請求追蹤,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • nodemon實現(xiàn)Typescript項目熱更新的示例代碼

    nodemon實現(xiàn)Typescript項目熱更新的示例代碼

    這篇文章主要介紹了nodemon實現(xiàn)Typescript項目熱更新的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • nodejs+websocket實時聊天系統(tǒng)改進(jìn)版

    nodejs+websocket實時聊天系統(tǒng)改進(jìn)版

    這篇文章主要介紹了nodejs+websocket實時聊天系統(tǒng)的改進(jìn)版,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • node.js中的path.resolve方法使用說明

    node.js中的path.resolve方法使用說明

    這篇文章主要介紹了node.js中的path.resolve方法使用說明,本文介紹了path.resolve的方法說明、接收參數(shù)、語法、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Nodejs?Docker鏡像體積優(yōu)化實踐詳解

    Nodejs?Docker鏡像體積優(yōu)化實踐詳解

    這篇文章主要為大家介紹了Nodejs?Docker鏡像體積優(yōu)化實踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 深入理解Node.js中的Worker線程

    深入理解Node.js中的Worker線程

    這篇文章主要介紹了深入理解Node.js中的Worker線程,對Worker線程感興趣的同學(xué),一定要看一下
    2021-04-04
  • 推薦一個基于Node.js的表單驗證庫

    推薦一個基于Node.js的表單驗證庫

    這篇文章主要介紹了推薦一個基于Node.js的表單驗證庫,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • node.js Promise對象的使用方法實例分析

    node.js Promise對象的使用方法實例分析

    這篇文章主要介紹了node.js Promise對象的使用方法,結(jié)合實例形式分析了node.js中Promise對象的功能、定義、調(diào)用方法及相關(guān)使用技巧,需要的朋友可以參考下
    2019-12-12

最新評論

通辽市| 修武县| 屏南县| 蓬莱市| 周宁县| 方山县| 呼图壁县| 彩票| 积石山| 故城县| 敖汉旗| 潮安县| 古丈县| 新平| 余干县| 丰台区| 红河县| 鄂托克前旗| 荣昌县| 高碑店市| 洱源县| 南陵县| 云阳县| 聂拉木县| 阿尔山市| 神木县| 金乡县| 精河县| 陈巴尔虎旗| 鹤山市| 普格县| 綦江县| 惠东县| 正镶白旗| 济阳县| 峡江县| 兴安县| 包头市| 灌云县| 竹溪县| 许昌县|