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

使用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ù)庫名注意?。?!不是你新建連接起的連接名
})
// 測試連接
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)文章

最新評論

元阳县| 禄劝| 邵东县| 尼玛县| 青川县| 沁阳市| 定远县| 中西区| 铅山县| 江孜县| 延吉市| 张家川| 济宁市| 阿拉善左旗| 黎川县| 桐梓县| 财经| 夏邑县| 洛川县| 饶平县| 蓝田县| 吉木萨尔县| 临颍县| 岳阳市| 惠州市| 和平县| 古蔺县| 炉霍县| 若尔盖县| 铜川市| 乡城县| 砚山县| 慈利县| 凤凰县| 曲阜市| 邵阳县| 安丘市| 海安县| 浑源县| 白城市| 贺州市|