node.js连接mysql数据库,封装成api。

   日期:2020-10-07     浏览:97    评论:0    
核心提示:导语:我们在写后台程序的时候,总要把一些数据写入到数据库中,所以合理的数据库函数调用是很有必要的,本文就写一写用node连接数据库,并且封装成函数。1,创建文件conf,在其里面创建db.js,用于存放数据库的账号还有密码。//根据开发或者生产模式来选择数据库const env = process.env.NODE_ENVlet MYSQL_CONFlet REDIS_CONFif (env === 'dev') { MYSQL_CONF = { host: 'localhos

导语:

我们在写后台程序的时候,总要把一些数据写入到数据库中,所以合理的数据库函数调用是很有必要的,本文就写一写用node连接数据库,并且封装成函数。

1,创建文件conf,在其里面创建db.js,用于存放数据库的账号还有密码。

//根据开发或者生产模式来选择数据库
const env = process.env.NODE_ENV

let MYSQL_CONF
let REDIS_CONF

if (env === 'dev') { 
  MYSQL_CONF = { 
    host: 'localhost',
    user: 'root',
    password: 'xiaomizhou123',
    port: '3306',
    database: 'mydb'
  }

  //redis_conf
  REDIS_CONF = { 
    port: 6379,
    host: '127.0.0.1'
  }
}

if (env === 'production') { 
  //mysql
  MYSQL_CONF = { 
    host: '172.**.**.**',
    user: 'root',
    password: 'xiaomizhou123',
    port: '3306',
    database: 'mydb'
  }

  //redis_conf
  REDIS_CONF = { 
    port: 6379,
    host: '172.**.**.**'
  }
}

module.exports = { 
  MYSQL_CONF,
  REDIS_CONF
}

2,创建db文件夹,下面创建mysql.js,用于编写数据库统一执行函数。

const mysql = require('mysql')
const {  MYSQL_CONF } = require('../conf/db')

// 创建链接对象
const con = mysql.createConnection(MYSQL_CONF)

// 开始链接
con.connect()

// 统一执行 sql 的函数
function exec(sql) { 
    const promise = new Promise((resolve, reject) => { 
        con.query(sql, (err, result) => { 
            if (err) { 
                reject(err)
                return
            }
            resolve(result)
        })
    })
    return promise
}

module.exports = { 
    exec,
    escape: mysql.escape
}

3,创建controller文件夹,下面创建user.js,编写sql拼接函数,用于生成完整的sql语句。

const {  exec, escape } = require('../db/mysql')
const {  genPassword } = require('../utils/cryp')
//登陆
const login = async (username, password) => { 
    username = escape(username)

    // 生成加密密码
    password = genPassword(password)
    password = escape(password)
    console.log(password)
    const sql = ` select username, realname, avatar from users where username=${ username} and passworded=${ password} `
    const rows = await exec(sql)
    return rows[0] || { }
}
module.exports = { 
    login
}

补充

微信搜索【web小馆】,回复全栈博客项目,即可获取项目源码和后续的实战文章教程。每天用最简单朴实的语言,潜移默化的提升你的计算机基础知识和前端技术。小米粥,一个专注的web全栈工程师,我们下期再见!


 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服