Express+mysql實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)

在config目錄下新建db.js文件,配置數(shù)據(jù)庫(kù)信息

var mysql = require("mysql")
var pool = mysql.createPool({
    host:"localhost",
    user:"root",
    password:"123456",
    database:"dbtest"
})//數(shù)據(jù)庫(kù)連接配置

function query(sql,callback){
    pool.getConnection(function(err,connection){
        connection.query(sql, function (err,rows) {
            callback(err,rows)
            connection.release()
        })
    })
}//對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查操作的基礎(chǔ)

exports.query = query

在service目錄下user.js文件中

const db = require('../config/db')
let show = () => {
  return new  Promise((resolve, reject) => {
    db.query('select * from user', (err, rows) => {
      if(err) {
        reject(err);
      }
      resolve(rows);
    })
  })
}//顯示全部 (select*)

let select = (attributename, attribute) => {
  return new Promise((resolve, reject) => {
    db.query(`select * from user where ${attributename} = '${attribute}'`, (err, rows) => {
      if(err) {
        reject(err);
      }
      resolve(rows);
    })
  })
}//查詢一行(傳參)

let update = (updateattributename, newdata,attributename,attribute) => {
  return new Promise((resolve, reject) => {
    db.query(`update user set ${updateattributename} = '${newdata}' where ${attributename} = '${attribute}'`,(err,rows) => {
      if(err) {
        reject(err);
      }
      resolve(rows);
    })
  }) 
}//修改

let insert = (attributenames, attributes) => {
  return new Promise((resolve, reject) => {
    db.query(`insert into user ${attributenames} values ${attributes}`, (err,rows) => {
      if(err) {
        reject(err);
      }
      resolve(rows);
    })
  })
}//增加

exports.show = show
exports.select = select
exports.update =  update
exports.insert = insert
在routes目錄下index.js中
var express = require('express');
var router = express.Router();

router.get('/show', async (req, res, next) => {
  console.log(req.session.user)
  try {
    console.log(req.session.user)
    let result = await require('../services/users').show();
    res.send(result);
  } catch (e) {
    res.send(e);
  }
})

router.get('/select', async (req, res, next) => {
  try {
    let param = req.query;
    for (x in param) {
      console.log(x + ' ' + param[x]);
      let result = await require('../services/users').select(x, param[x]);
      res.send(result);
    }
  } catch (e) {
    res.send(e);
  }
})
router.get('/update', async (req, res, next) => {
  try {
    let param = req.query;
    let attributename = [], attribute = [];
    for (x in param) {
      console.log(x + ' ' + param[x])
      attributename.push(x);
      attribute.push(param[x])
    }
    let result = await require('../services/users').update(attributename[0], attribute[0], attributename[1], attribute[1]);
    res.send(result);
  } catch (e) {
    res.send(e);
  }
})

router.get('/insert', async (req, res, next) => {
  try {
    let param = req.query;
    for (x in param) {
      console.log(x + ' ' + param[x]);
      let result = await require('../services/users').insert(x, param[x]);
      res.send(result);
    }
  } catch (e) {
    res.send(e);
  }
})
module.exports = router;

終端運(yùn)行npm start 就可以在localhost:3000進(jìn)行post和get請(qǐng)求了。

這里使用Postman工具。


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

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 前兩部分我們已經(jīng)完成了博客頁(yè)面的展示和后臺(tái)頁(yè)面的展示: React技術(shù)棧+Express+Mongodb實(shí)現(xiàn)個(gè)人博...
    SamDing閱讀 5,545評(píng)論 1 12
  • 用vue-cli腳手架工具創(chuàng)建一個(gè)基于webpack的Vue項(xiàng)目 安裝node node官網(wǎng)地址:https://...
    余生社會(huì)閱讀 21,949評(píng)論 5 12
  • 這會(huì)是一個(gè)連載,主人公便是小白和我,至于為什么叫小白,那就是再簡(jiǎn)單不過(guò)的他喜歡我叫他小白 寫(xiě)這個(gè)文章的我,也不知道...
    aae87c29a529閱讀 170評(píng)論 0 0
  • 果然,我哥給我找工作的事泡湯了,他還建議我讓我去找個(gè)地方先學(xué)習(xí),還說(shuō)不想讓我到小公司去,雖然他沒(méi)有明說(shuō),但我覺(jué)得是...
    兆之閱讀 148評(píng)論 0 0

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