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

使用nodejs連接mySQL寫接口全過程(增刪改查)

 更新時間:2023年12月20日 10:02:25   作者:撒個辣醬  
這篇文章主要給大家介紹了關(guān)于使用nodejs連接mySQL寫接口(增刪改查)的相關(guān)資料,MySQL是一種常用的關(guān)系型數(shù)據(jù)庫,它與Node.js的結(jié)合可以提供強大的數(shù)據(jù)存儲和檢索功能,需要的朋友可以參考下

前言

提示:請先建好mySQL數(shù)據(jù)庫,本案例所用node版本為16.20.0:

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、navicat建立鏈接

文件-新建鏈接-MySQL

默認端口為3306,連接名自定,密碼為安裝MySQL設(shè)置的數(shù)據(jù)庫密碼

二、建數(shù)據(jù)庫表

打開或新建一個數(shù)據(jù)庫,建立一張新表,設(shè)計好字段后加入兩條測試數(shù)據(jù)

此處建立表名為userList(后面會用到)

字段:name, password, money, userId, sex, company, job

三、新建nodejs項目,建議直接使用Hbuilder編輯器快速創(chuàng)建

提示:請一定要確認nodejs版本是否與npm版本有沖突

打開Hbuilder,文件-新建-項目,選擇Express項目

四、新建的項目在vscode打開后,進入app.js

1、在項目內(nèi)寫入啟動項目的代碼

提示:啟動代碼需寫在var app = express();代碼之后,否則報錯

本案例將服務(wù)啟動在2323端口

app.listen(2323, () => console.log('服務(wù)已啟動在2323端口'))

2、文件夾右鍵,在集成終端中打開,輸入node app.js啟動服務(wù)

啟動成功后會在終端內(nèi)顯示你 打印的字樣,說明啟動成功

此時可寫一個簡單的get接口來測試是否有問題

app.get('/', (req, res) => {
  res.json('helloWord')
})

寫入此代碼后,進入localhost:2323/或者127.0.0.1:2323/,則返回helloWord

此時證明服務(wù)器沒問題了

五、建立MySQL鏈接

因Hbuilder建立的express項目并沒有下載Mysql插件,所以需在終端自行下載

直接在終端運行 npm install mysql 即可

下載成功后在router文件夾下index.js下建立鏈接,在此處編寫具體接口代碼
代碼示例:

const mysql = require('mysql');

// 鏈接數(shù)據(jù)庫
const conn = mysql.createConnection({ 
  user:'root',          //用戶名使用前面數(shù)據(jù)庫建立鏈接里的用戶名
  password:'******',	//密碼
  port:3306,
  host:'localhost',		//主機(默認都是local host)
  database:'node'       //數(shù)據(jù)庫名注意?。。〔皇悄阈陆ㄟB接起的連接名
})
// 測試連接
conn.connect(err=>{
  console.log(err,'連接成功');
})

啟動項目后如果返回null,鏈接成功,則鏈接數(shù)據(jù)庫成功

六、簡單查詢列表

提示:此處開始用到sql語句,請在navicat運行成功后再進行編寫

代碼示例:

index.js

// 獲取用戶列表
router.get('/getList', (req, res, next) => {
  // sql語句查詢列表所有數(shù)據(jù)  SELECT * FROM 你數(shù)據(jù)庫的表名,我這里是userList
    let sql = "SELECT * FROM userlist";
  conn.query(sql, (err, r) => {
    res.json({code: 200, data: r, msg: '成功'})
  })
});

postman測試結(jié)果:

七、添加數(shù)據(jù)

代碼示例:

index.js

// 在index.js同目錄下創(chuàng)建新的interface.js文件,并在index.js最上面引入文件interface.js
var interface = require('./interface')
// 添加用戶接口
router.post('/addUser', (req, res) => {
  interface.addUser(conn, req, res)
})

interface.js代碼示例: 此處設(shè)置了用戶名和密碼必須傳遞,否則失敗

此處使用了隨機生成id函數(shù)randomId

// 添加用戶
const addUser = (conn, req, res) => {
    const params = req.body
    // console.log(params);
    const ret = {}
    if (params.name == '') {
        ret.code = 501
        ret.data = null
        ret.msg = '請傳遞用戶名'
        res.json(ret)
        return
    } else if (params.password == '') {
        ret.code = 501
        ret.data = null
        ret.msg = '請設(shè)置用戶密碼'
        res.json(ret)
        return
    } else {
        conn.query(`INSERT INTO userlist(name,password,money,userid,sex,company,job)VALUES(
            '${params.name}','${params.password}','${params.money}','${randomId()}','${params.sex}','${params.company}','${params.job}')`,
            function (error, results, fields) {
            if (error) {
                ret.code = 500
                ret.data = null
                ret.msg = error.sqlMessage
                return
            }
            if (results.length === 0) {
                ret.code = 501
                ret.message = '請傳遞正確的參數(shù)'
            } else {
                ret.code = 200
                ret.data = null
                ret.msg = '添加成功'
            }
            res.json(ret)
        })
    }
}

const randomId = function uuid(){
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = Math.random() * 16 | 0,
            v = c == 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });		
}

//最后exports
exports.addUser = addUser

postman測試結(jié)果:

此時查看數(shù)據(jù)庫表,會多出一條剛剛添加的數(shù)據(jù)

八、修改數(shù)據(jù)

index.js代碼示例:

// 修改用戶接口
router.post('/updateUser', (req, res) => {
  interface.updateUser(conn, req, res)
})

interface.js代碼示例: 傳遞參數(shù)比添加多了一個userId

// 修改用戶
const updateUser = (conn, req, res) => {
    const params = req.body
    // console.log(params);
    const ret = {}
    if (params.name == '') {
        ret.code = 501
        ret.data = null
        ret.msg = '請傳遞用戶名'
        res.json(ret)
        return
    } else if (params.password == '') {
        ret.code = 501
        ret.data = null
        ret.msg = '請設(shè)置用戶密碼'
        res.json(ret)
        return
    } else if (params.userId == '') {
        ret.code = 501
        ret.data = null
        ret.msg = '請傳遞用戶id'
        res.json(ret)
        return
    } else {
        conn.query(`UPDATE userlist SET 
        name="${params.name}",
        password="${params.password}",
        money="${params.money}",
        sex="${params.sex}",
        company="${params.company}",
        job="${params.job}" WHERE userId="${params.userId}";`,
            function (error, results, fields) {
                if (error) {
                    ret.code = 500
                    ret.data = null
                    ret.msg = error.sqlMessage
                    return
                }
                if (results.length === 0) {
                    ret.code = 501
                    ret.message = '請傳遞正確的參數(shù)'
                } else {
                    ret.code = 200
                    ret.data = null
                    ret.msg = '修改成功'
                }
                res.json(ret)
            })
    }
}

//最后exports
exports.updateUser = updateUser

postman測試結(jié)果:

修改成功后刷新數(shù)據(jù)庫表,對應(yīng)userId的數(shù)據(jù)會更改

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

index.js代碼示例:

// 刪除用戶接口
router.post('/deleteUser', (req, res) => {
  interface.deleteUser(conn, req, res)
})

interface.js代碼示例: 參數(shù)僅傳userId

// 刪除用戶
const deleteUser = (conn, req, res) => {
    const params = req.body
    // console.log(params);
    const ret = {}
    if (params.userId == '') {
        ret.code = 501
        ret.data = null
        ret.msg = '請傳遞用戶id'
        res.json(ret)
        return
    } else { 
        conn.query(`DELETE FROM userlist WHERE userId="${params.userId}";`,
            function (error, results, fields) {
                // console.log(error);
                if (error) {
                    ret.code = 500
                    ret.data = null
                    ret.msg = error.sqlMessage
                    return
                }
                if (results.length === 0) {
                    ret.code = 501
                    ret.message = '請傳遞正確的參數(shù)'
                } else {
                    ret.code = 200
                    ret.data = null
                    ret.msg = '刪除成功'
                }
                res.json(ret)
            })
    }
}

//最后exports
exports.deleteUser = deleteUser

postman測試結(jié)果:刪除剛剛修改的那一條

成功后刷新數(shù)據(jù)庫表,剛剛那條數(shù)據(jù)發(fā)現(xiàn)已刪除

總結(jié)

本人nodejs僅還在學(xué)習(xí)階段,希望能對學(xué)習(xí)nodejs的小伙伴有所幫助!

到此這篇關(guān)于使用nodejs連接mySQL寫接口(增刪改查)的文章就介紹到這了,更多相關(guān)nodejs連接mySQL寫接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • node.js博客項目開發(fā)手記

    node.js博客項目開發(fā)手記

    本篇文章給大家總結(jié)了node.js博客項目開發(fā)的相關(guān)步驟以及知識點分享,有興趣的朋友參考下。
    2018-03-03
  • nodejs中的express-jwt的使用解讀

    nodejs中的express-jwt的使用解讀

    這篇文章主要介紹了nodejs中的express-jwt的使用解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • nodejs入門教程一:概念與用法簡介

    nodejs入門教程一:概念與用法簡介

    這篇文章主要介紹了nodejs入門教程之概念與用法,結(jié)合實例形式分析了nodejs基本概念、功能、命令與相關(guān)使用技巧,需要的朋友可以參考下
    2017-04-04
  • connect中間件session、cookie的使用方法分享

    connect中間件session、cookie的使用方法分享

    今天大象哥用了下connect的session和cookie,感覺還挺好用的,分享一下(里面坑挺多的,文檔寫的太模糊了,費了哥不少時間)。
    2014-06-06
  • 基于模板引擎Jade的應(yīng)用(詳解)

    基于模板引擎Jade的應(yīng)用(詳解)

    下面小編就為大家分享一篇基于模板引擎Jade的應(yīng)用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • WebSocket+node.js創(chuàng)建即時通信的Web聊天服務(wù)器

    WebSocket+node.js創(chuàng)建即時通信的Web聊天服務(wù)器

    這篇文章主要為大家詳細介紹了WebSocket+node.js創(chuàng)建即時通信的Web聊天服務(wù)器的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-08-08
  • gulp安裝以及打包合并的方法教程

    gulp安裝以及打包合并的方法教程

    這篇文章主要給大家介紹了關(guān)于gulp實現(xiàn)人一個打包合并的方法教程,并分享了gulp打包js/css時合并成一個文件時的順序的解決方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • 如何在Nodejs中使用模塊fs文件系統(tǒng)

    如何在Nodejs中使用模塊fs文件系統(tǒng)

    這篇文章主要介紹了如何在Nodejs中使用模塊fs文件系統(tǒng),對nodejs感興趣的同學(xué),可以參考下
    2021-05-05
  • async/await優(yōu)雅的錯誤處理方法總結(jié)

    async/await優(yōu)雅的錯誤處理方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于async/await優(yōu)雅的錯誤處理方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 在Node.js中處理Promise中錯誤的示例代碼

    在Node.js中處理Promise中錯誤的示例代碼

    在現(xiàn)代JavaScript開發(fā)中,尤其在Node.js環(huán)境中,Promise已成為處理異步操作的重要方式,然而,Promise的錯誤處理卻常常讓開發(fā)者感到困惑,在這篇文章中,我們將深入探討如何在Node.js中處理Promise中的錯誤,提供多個示例代碼,以便于理解和實踐,需要的朋友可以參考下
    2024-09-09

最新評論