導語:
我們在寫后臺程式的時候,總要把一些資料寫入到資料庫中,所以合理的資料庫函式呼叫是很有必要的,本文就寫一寫用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全堆疊工程師,我們下期再見!


轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/160868.html
標籤:其他
