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

NodeJs操作MYSQL方法詳細介紹

 更新時間:2022年08月24日 15:27:59   作者:薇z  
本章將了解如何在nodejs中操作Mysql,實際項目中不可能用workbench來進行增刪改查,而是用代碼操作,接下來我們講解一下如何在 nodejs中操作Mysql

在項目中操作數(shù)據(jù)庫的步驟

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

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

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

安裝與配置 mysql 模塊

1. 安裝 mysql 模塊

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

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

npm install mysql

2. 配置 mysql 模塊

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

// 1. 導(dǎo)入 mysql 模塊
const mysql = require('mysql')
// 2. 建立與 MySQL 數(shù)據(jù)庫的連接關(guān)系
const db = mysql.createPool({
  host: '127.0.0.1', // 數(shù)據(jù)庫的 IP 地址
  user: 'root', // 登錄數(shù)據(jù)庫的賬號
  password: '123456', // 登錄數(shù)據(jù)庫的密碼
  database: 'mydb01', // 指定要操作哪個數(shù)據(jù)庫
})

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

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

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

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

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

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

// 查詢 user 表中所有的數(shù)據(jù)
 const sqlStr = 'select * from user'
db.query(sqlStr, (err, results) => {
  // 查詢數(shù)據(jù)失敗
  if (err) return console.log(err.message)
  // 查詢數(shù)據(jù)成功
  // 注意:如果執(zhí)行的是 select 查詢語句,則執(zhí)行的結(jié)果是數(shù)組
  console.log(results)
})

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

向 user 表中新增數(shù)據(jù), 其中 username 為 Spider-Man,password 為 pcc321,status為0。示例代碼如下:

// 向 user 表中,新增一條數(shù)據(jù),其中 username 的值為 Spider-Man,password 的值為 pcc123,status為0
const userdata = { username: 'Spider-Man', password: 'pcc123',status:"0" }
// 定義待執(zhí)行的 SQL 語句,?為占位符
const sqlStr = 'insert into user (username, password,status) values (?, ?,?)'
// 執(zhí)行 SQL 語句,使用數(shù)組的形式依次為?占位符指定具體的值
db.query(sqlStr, [userdata.username, userdata.password,userdata.status], (err, results) => {
  // 執(zhí)行 SQL 語句失敗了
  if (err) return console.log(err.message)
  // 成功了
  // 注意:如果執(zhí)行的是 insert into 插入語句,則 results 是一個對象
  // 可以通過 affectedRows 屬性,來判斷是否插入數(shù)據(jù)成功
  if (results.affectedRows === 1) {
    console.log('插入數(shù)據(jù)成功!')
  }
})

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

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

// 演示插入數(shù)據(jù)的便捷方式
const userdata = { username: 'Spider-Man2', password: 'pcc4321',status:'0'}
// 定義待執(zhí)行的 SQL 語句
const sqlStr = 'insert into user set ?'
// 執(zhí)行 SQL 語句
db.query(sqlStr, userdata, (err, results) => {
  if (err) return console.log(err.message)
  if (results.affectedRows === 1) {
    console.log('插入數(shù)據(jù)成功')
  }
}) 

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

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

// 演示如何更新用戶的信息
const userdata = { id: 15, username: 'aaa', password: '000' }
// 定義 SQL 語句
const sqlStr = 'update user set username=?, password=? where id=?'
// 執(zhí)行 SQL 語句
db.query(sqlStr, [userdata.username, userdata.password, userdata.id], (err, results) => {
  if (err) return console.log(err.message)
  // 注意:執(zhí)行了 update 語句之后,執(zhí)行的結(jié)果,也是一個對象,可以通過 affectedRows 判斷是否更新成功
  if (results.affectedRows === 1) {
    console.log('更新成功')
  }
})

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

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

// 演示更新數(shù)據(jù)的便捷方式
const userdata = { id: 6, username: 'aaaa', password: '0000' }
// 定義 SQL 語句
const sqlStr = 'update users set ? where id=?'
// 執(zhí)行 SQL 語句
db.query(sqlStr, [userdata, userdata.id], (err, results) => {
  if (err) return console.log(err.message)
  if (results.affectedRows === 1) {
    console.log('更新數(shù)據(jù)成功')
  }
}) 

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

在刪除數(shù)據(jù)時,推薦根據(jù) id 這樣的唯一標識,來刪除對應(yīng)的數(shù)據(jù)。示例如下:

// 刪除 id 為 5 的用戶
const sqlStr = 'delete from user where id=?'
db.query(sqlStr, 5, (err, results) => {
  if (err) return console.log(err.message)
  // 注意:執(zhí)行 delete 語句之后,結(jié)果也是一個對象,也會包含 affectedRows 屬性
  if (results.affectedRows === 1) {
    console.log('刪除數(shù)據(jù)成功')
  }
})

7. 標記刪除

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

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

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

// 標記刪除
const sqlStr = 'update user set status=? where id=?'
db.query(sqlStr, [1, 6], (err, results) => {
  if (err) return console.log(err.message)
  if (results.affectedRows === 1) {
    console.log('標記刪除成功')
  }
})

到此這篇關(guān)于NodeJs操作MYSQL方法詳細介紹的文章就介紹到這了,更多相關(guān)NodeJs操作MYSQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nodejs模塊的調(diào)用操作實例分析

    Nodejs模塊的調(diào)用操作實例分析

    這篇文章主要介紹了Nodejs模塊的調(diào)用操作,結(jié)合實例形式分析了nodejs模塊的定義與調(diào)用相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • nodejs連接mysql數(shù)據(jù)庫及基本知識點詳解

    nodejs連接mysql數(shù)據(jù)庫及基本知識點詳解

    這篇文章主要介紹了nodejs連接mysql數(shù)據(jù)庫,結(jié)合實例形式總結(jié)分析了nodejs連接與操作mysql數(shù)據(jù)庫的相關(guān)模板、配置及mysql數(shù)據(jù)庫查詢、添加數(shù)據(jù)等操作技巧,需要的朋友可以參考下
    2018-03-03
  • Nodejs實現(xiàn)爬蟲抓取數(shù)據(jù)實例解析

    Nodejs實現(xiàn)爬蟲抓取數(shù)據(jù)實例解析

    這篇文章主要介紹了Nodejs實現(xiàn)爬蟲抓取數(shù)據(jù)實例解析,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • 深入解讀Node.js中的koa源碼

    深入解讀Node.js中的koa源碼

    這篇文章主要介紹了深入解讀Node.js中的koa源碼,任何一個框架的出現(xiàn)都是為了解決問題,而Koa則是為了更方便的構(gòu)建http服務(wù)而出現(xiàn)的。 可以簡單的理解為一個HTTP服務(wù)的中間件框架。,需要的朋友可以參考下
    2019-06-06
  • Mac 安裝 nodejs方法(圖文詳細步驟)

    Mac 安裝 nodejs方法(圖文詳細步驟)

    這篇文章主要介紹了Mac 安裝 nodejs方法(圖文詳細步驟),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 獨立部署小程序基于nodejs的服務(wù)器過程詳解

    獨立部署小程序基于nodejs的服務(wù)器過程詳解

    這篇文章主要介紹了獨立部署小程序基于nodejs的服務(wù)器過程詳解,完全自定義的部署小程序服務(wù)器, 不依托于騰訊云服務(wù)器體系. 以阿里云服務(wù)器為基礎(chǔ)建立.服務(wù)器語言選用nodejs.,需要的朋友可以參考下
    2019-06-06
  • 詳解從買域名到使用pm2部署node.js項目全過程

    詳解從買域名到使用pm2部署node.js項目全過程

    本篇文章主要介紹了詳解從買域名到使用pm2部署node.js項目全過程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 基于websocket實現(xiàn)簡單聊天室對話

    基于websocket實現(xiàn)簡單聊天室對話

    這篇文章主要為大家詳細介紹了基于websocket實現(xiàn)簡單聊天室對話,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 關(guān)于Node.js中Buffer的一些你可能不知道的用法

    關(guān)于Node.js中Buffer的一些你可能不知道的用法

    網(wǎng)上關(guān)于Node.js中Buffer用法的文章有很多,但是感覺還是不夠詳細,所以這篇文章主要介紹了關(guān)于Node.js中Buffer的一些你可能不知道的用法,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • node.js中RPC(遠程過程調(diào)用)的實現(xiàn)原理介紹

    node.js中RPC(遠程過程調(diào)用)的實現(xiàn)原理介紹

    這篇文章主要介紹了node.js中RPC(遠程過程調(diào)用)的實現(xiàn)原理介紹,本文基于一個簡單的RPC庫nodejs light_rpc實現(xiàn),需要的朋友可以參考下
    2014-12-12

最新評論

南部县| 南康市| 大渡口区| 布拖县| 福州市| 奉节县| 石阡县| 福泉市| 卫辉市| 将乐县| 额尔古纳市| 秀山| 南江县| 乳山市| 台州市| 海安县| 武强县| 海晏县| 冕宁县| 芦溪县| 抚远县| 东海县| 木兰县| 仁布县| 黄山市| 策勒县| 蒲江县| 兴城市| 宜宾县| 衡水市| 桂阳县| 临西县| 柳江县| 乐亭县| 巢湖市| 西乌珠穆沁旗| 历史| 龙岩市| 墨竹工卡县| 瓦房店市| 临清市|