Nodejs连接Mysql实现增删改查接口demo

Demo目录

Nodejs连接Mysql实现增删改查接口demo_第1张图片

query ./dbconfig.js

const mysql = require('mysql')
const dbconfig = require('./dbconfig')
const pool = mysql.createPool(dbconfig);


//数据库连接池
function query(sql,params) {
    return new Promise((resolve, reject) => {
    	  pool.getConnection((err, conn) => {
            if (err) {
            	reject(err)
            	return
            }
            // let sql = 'select *from user where id=? and name=?'
            //执行sql语句
            conn.query(sql, params, (err, result) => {
                conn.release()
                if (err) {
                    throw err
                }
               resolve(result)
        })
    });
    });
}

module.exports=query


query配置 ./router/index.js

let dbconfig

dbconfig={
	//配置mysql数据库
	connectionLimit: 10,
    host: "localhost",
    user: 'root',
    password: '123456',
    port: '3306',
    database: 'test'
}

module.exports=dbconfig

接口方法实现 ./controller/user.js

const query = require('../index.js')

module.exports = {
	//动态查询
    async getUserList(urlParams) {
        let { name, city, sex } = urlParams
        let sql = 'select *from user where 1=1 '
        if (name) {
            sql += 'and name = ?'
        }
        if (city) {
            sql += 'and city = ?'
        }
        if (sex) {
            sql += 'and sex = ?'
        }
        console.log(sql)
        let resultData = await query(sql, [name, city, sex])
        return resultData
    },
    async addUser(userObj) {
    //增
        let { name, city, sex } = userObj
        let sql = 'insert into user (name,city,sex) values (?,?,?)'
        let resultData = await query(sql, [name, city, sex])
        console.log(resultData, 'user.js')
        // return resultData
        if (resultData) {
            return {
                msg: "添加成功"
            }
        } else {
            return {
                msg: "添加失败"
            }
        }
    },
    async deleteUser(id) {
    //删
        let sql = 'delete from user where id =?'
        let resultData = await query(sql, [id])
        // return resultData
        if (resultData.affectedRows > 0) {
            return {
                msg: '更新成功'
            }
        } else {
            return {
                msg: '更新失败'
            }
        }
    },
    async updateUser(id, userObj) {
    //改
        let { name, city, sex } = userObj
        let sql = 'update user set name = ?,city = ?,sex = ? where id = ?'
        let resultData = await query(sql, [name, city, sex, id])
        if (resultData.affectedRows > 0) {
            return {
                msg: '更新成功'
            }
        } else {
            return {
                msg: '更新失败'
            }
        }
    }
}

服务端 ./server.js

const url = require('url')
const http = require('http')
const routerModal = require('./router/index.js')

const getPostData = (req) => {
    return new Promise((resolve, reject) => {
        if (req.method !== 'POST') {
            resolve({})
            return
        }
        let postData = ''
        req.on('data', chunk => {
            postData += chunk;
        })
        req.on('end', () => {
            console.log(postData)
            resolve(JSON.parse(postData))
        })
    });
}
const server = http.createServer((req, res) => {
  //设置允许跨域的域名,*代表允许任意域名跨域
  res.setHeader("Access-Control-Allow-Origin","http://127.0.0.1:5501");
  res.writeHead(200, { 'content-type': 'application/json;charset=UTF-8' })
  getPostData(req).then((data) => {
    req.body = data
    let result = routerModal(req, res);
    if (result) {
      result.then(resultData =>{
        res.end(JSON.stringify(resultData))
      })  
    } else {
      res.writeHead(404, { 'content-type': 'text/html' })
      res.end('404 not found')
    }
  })

})

server.listen(3000, () => {
  console.log('监听3000端口')
})

你可能感兴趣的:(Node,nodejs,mysql)