Express+mysql实现数据库访问

在config目录下新建db.js文件,配置数据库信息

var mysql = require("mysql")
var pool = mysql.createPool({
    host:"localhost",
    user:"root",
    password:"123456",
    database:"dbtest"
})//数据库连接配置

function query(sql,callback){
    pool.getConnection(function(err,connection){
        connection.query(sql, function (err,rows) {
            callback(err,rows)
            connection.release()
        })
    })
}//对数据库进行增删改查操作的基础

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;

终端运行npm start 就可以在localhost:3000进行post和get请求了。

这里使用Postman工具。


1.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,225评论 19 139
  • 前两部分我们已经完成了博客页面的展示和后台页面的展示: React技术栈+Express+Mongodb实现个人博...
    SamDing阅读 5,493评论 1 12
  • 用vue-cli脚手架工具创建一个基于webpack的Vue项目 安装node node官网地址:https://...
    余生社会阅读 21,768评论 5 12
  • 这会是一个连载,主人公便是小白和我,至于为什么叫小白,那就是再简单不过的他喜欢我叫他小白 写这个文章的我,也不知道...
    aae87c29a529阅读 153评论 0 0
  • 果然,我哥给我找工作的事泡汤了,他还建议我让我去找个地方先学习,还说不想让我到小公司去,虽然他没有明说,但我觉得是...
    兆之阅读 115评论 0 0