[记录十] Vue(全家桶)+node+koa2+mysql+nginx+redis,博客全栈项目之node后台sql语句和exec执行函数

导语:

暑假在家闲着无事,就琢磨着做一个web博客练练手,现在已经做完了,把过程分享出来给大家看看,分享一下学习经验。这是第十篇,开始编写后台接口,为前端接口提供提供基础,主要讲后台sql语句和exec执行函数。

微信搜索 【web小馆】,回复 ”全栈博客项目“,即可获取 项目源码和后续的实战文章教程。

本文的目录一,user.js,用户接口1,登陆2,注册3,更换头像4,更换名字二,密码加密函数三,exec函数

一,user.js,用户接口
1,登陆

//登陆
const login = async (username, password) => {
username = escape(username)

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

2,注册

// 注册
const signup = async (username, password, realname, email) => {
username = escape(username)
// 生成加密密码
password = genPassword(password)
password = escape(password)
console.log(password)

let test = `select username from users where username=${username}` //注册时检验有无相同账号
const testData = await exec(test)
console.log(testData,testData.length)
if (testData.length > 0) {
return {
num: testData.length,
id: 0
}
}

const sql = `
insert into users (username, realname, passworded, email, likes, goods) values (${username}, '${realname}', ${password}, '${email}', '', '');
` //注册
// console.log('sql is', sql)
const insertData = await exec(sql)
return {
num: 0,
id: insertData.insertId
}
}

3,更换头像

const updataavatar = async (username, avatar_url) => {
const sql = `
update users set avatar='${avatar_url}' where username = '${username}';
`
const insertData = await exec(sql)
console.log(insertData)
return insertData

}

4,更换名字

const updataname = async (username, name) => {
const sql = `
update users set realname='${name}' where username = '${username}';
`
const insertData = await exec(sql)
console.log(insertData)
return insertData

}

二,密码加密函数

使用密码crypto加密,自己定义一个密匙,然后就能够生产一个新的加密密码,存放入数据库中,就算是数据库内容泄露,黑客也很难去翻译出这些加密密码的明文是多少。

const crypto = require('crypto')

//密匙
const SECRET_KEY = 'xiaomizhou123#'

//加密
function md5(content) {
let md5 = crypto.createHash('md5')
return md5.update(content).digest('hex')
}

function genPassword(password) {
const str = `password=${password}&key=${SECRET_KEY}`
return md5(str)
}

module.exports = {
genPassword
}

三,exec函数

所有的sql语句都要通过这个exec函数调用去执行,才能完成数据库的操作。

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
}

[记录十] Vue(全家桶)+node+koa2+mysql+nginx+redis,博客全栈项目之node后台sql语句和exec执行函数

你们的赞就是对我最大的鼓励。谢谢~

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

[记录十] Vue(全家桶)+node+koa2+mysql+nginx+redis,博客全栈项目之node后台sql语句和exec执行函数
[记录十] Vue(全家桶)+node+koa2+mysql+nginx+redis,博客全栈项目之node后台sql语句和exec执行函数

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

[记录十] Vue(全家桶)+node+koa2+mysql+nginx+redis,博客全栈项目之node后台sql语句和exec执行函数

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » [记录十] Vue(全家桶)+node+koa2+mysql+nginx+redis,博客全栈项目之node后台sql语句和exec执行函数
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏