NodeJS+Express+MySQL,搭建接口服務(wù)

寫在前面

此接口服務(wù)的搭建采用的技術(shù)棧包括NodeJS、Express框架、MySQL及各種相關(guān)中間件等。這次完成的是較為基礎(chǔ)的對MySQL數(shù)據(jù)庫增刪改查操作,有興趣深入了解的讀者可以詳細(xì)閱讀一下《Building APIs with Node.js》這本書。

技術(shù)棧
  • NodeJS
  • Express框架
  • MySQL數(shù)據(jù)庫
  • 中間件
    cors中間件
    body-parser中間件
    mysql中間件

開始接口服務(wù)的搭建工作。進(jìn)入正題之前,\color{Crimson}{請注意:} \color{Hotpink}{先安裝依賴}、\color{LightGreen}{先安裝依賴}、\color{Khaki}{先安裝依賴},重要的事情說三遍。

后臺搭建

const express = require('express')
const app = express()
// CORS模塊,處理web端跨域問題
const cors = require('cors')
app.use(cors())

//body-parser 解析表單
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended:false}))
app.use(bodyParser.json())

//使用mysql中間件連接MySQL數(shù)據(jù)庫
const mysql = require('mysql')
const connection = mysql.createConnection({
    host:'localhost',           //數(shù)據(jù)庫地址
    user: 'root',               //用戶名
    password: 'root',           //密碼
    port : '3306',              //端口
    database: 'test',           //庫名
    multipleStatements:true     //允許執(zhí)行多條語句
})

查詢表數(shù)據(jù)

// 查詢
app.get('/api/user',(req,res,next) => {
    const sql ='SELECT * FROM user' //user為表名
    connection.query(sql,(err,results) =>{
        if(err){
            return res.json({
                code: 1,
                message: '用戶不存在',
                affextedRows: 0
            })
        }
        res.json ({
            code : 200,
            message: results,
            affextedRows:results.affextedRows
        })
    })
})

條件查詢表數(shù)據(jù)

// 條件查詢
app.get('/api/body',(req,res) => {
    const id = req.query.id
    const sql = 'SELECT * FROM user where id=?'
    connection.query(sql,id,(err,results) => {
        if (err) {
            return res.json({
                code: 1,
                message: '無此用戶',
                affextedRows: 0
            })
        }
        res.json ({
            code: 200,
            message: results,
            affextedRows:results.affextedRows
        })
    })
})

增加表數(shù)據(jù)

//增加
app.post('/api/adduser', (req,res) => {
    const user = req.body
    const addSql = 'INSERT INTO user SET ?'
    connection.query(addSql,user,(err,results) => {
        if (err) {
            return res.json({
                code: 1,
                message: '添加失敗',
                affextedRows: 0
            })
        }
        res.json ({
            code: 200,
            message: '添加成功',
            affextedRows:results.affextedRows
        })
    })
})

更新表數(shù)據(jù)

/修改
app.post('/api/updateuser',(req,res) => {
    const user = []
    user[0] = req.body.userName
    user[1] = req.body.passWord
    user[2] = req.body.id
    const updateSql = 'UPDATE user SET userName = ?,passWord = ? WHERE Id = ?'
    connection.query(updateSql,user,(err,results) => {
        if (err) {
            return res.json({
                code: 1,
                message: '修改失敗',
                affextedRows: 0
            })
        }
        res.json ({
            code: 200,
            message: '修改成功',
            affextedRows:results.affextedRows
        })
    })
})

啟動服務(wù),監(jiān)聽3001服務(wù)端口

//啟動服務(wù),端口3001
app.listen(3001,() => {
    console.log('服務(wù)啟動成功:'+`http://localhost:3001/`)
})

本章源碼下載:GitHub地址
如果覺得有所幫助,歡迎\color{Crimson}{喜歡}\color{Crimson}{贊賞} ^_^

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容