小程序记录
小程序个人用的比较少的点
显示loading
wx.showNavgitionBarLoading()
wx.hideNavgitionBarLoading()
头像转发的前一些 css设置
.avatar{
width:20px;
height:20px;
border-radius:50%;
vetical-align:middle;//图片设置 这个属性 同字体垂直居中
}
swiper 组件
switch 组件
<switch color='#EA5A49' :checked='location' @change='getGeo'></switch> 做了修改
getPhone (e) {
console.log('手机型号获取种')
if (e.target.value) {//拿到是否选中
const phoneInfo = wx.getSystemInfoSync()
// console.log(phoneInfo)
this.phone = phoneInfo.model
} else {
// 没选中
this.phone = ''
}
}
knex.js
官方网站
博文网站
连表查询
const mysql=require('../qcloud.js')
const books=await mysql('books')
.selset('books.*','cSessionInfo.user_info')
.join('cSessionInfo','books.openid','cSessionInfo.open_id')
.limit(size)
.offset(Number(page)*size)
.orderBy('books.id','desc')
条件查询
const mysql=require('../qcloud.js')
const books=await mysql('books')
.selset('books.*','cSessionInfo.user_info')
.join('cSessionInfo','books.openid','cSessionInfo.open_id')
.where('id',id)
.first()
本来返回的是数组 first() 返回第一个对象
插入数据
const {mysql} = require('../qcloud')
module.exports = async (ctx) => {
const {bookid, comment, openid, location, phone} = ctx.request.body
console.log(bookid, comment, openid, location, phone)
try {
await mysql('comments').insert({bookid, comment, openid, location, phone})
ctx.state.data = {
msg: 'success'
}
} catch (e) {
ctx.state = {
code: -1,
data: {
msg: '评论失败:' + e.sqlMessage //数据库报错信息
}
}
}
}
建立数据库
-- show create table books
tools/snail.sql
DROP TABLE IF EXISTS `books`;
CREATE TABLE `books` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`isbn` varchar(20) NOT NULL,
`openid` varchar(100) NOT NULL,
`title` varchar(100) NOT NULL,
`image` varchar(100) NOT NULL,
`alt` varchar(100) NOT NULL,
`publisher` varchar(100) NOT NULL,
`summary` varchar(1000) NOT NULL,
`price` varchar(100) DEFAULT NULL,
`rate` float DEFAULT NULL,
`tags` varchar(100) DEFAULT NULL,
`author` varchar(100) DEFAULT NULL,
`count` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `comments`;
CREATE TABLE `comments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`openid` varchar(100) NOT NULL,
`bookid` varchar(100) NOT NULL,
`comment` varchar(200) NOT NULL,
`phone` varchar(20) DEFAULT NULL,
`location` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
数据结果分类 还可以这么写啊 链式
const { mysql } = require('../qcloud')
module.exports = async (ctx) => {
const {page, openid} = ctx.request.query
const size = 10
const mysqlSelect = mysql('books')
.select('books.*', 'cSessionInfo.user_info')
.join('cSessionInfo', 'books.openid', 'cSessionInfo.open_id')
.orderBy('books.id', 'desc')
let books
if(openid){
// 根据opid过滤
books = await mysqlSelect.where('books.openid', openid)
}else{
// 全部图书 分页
books = await mysqlSelect.limit(size).offset(Number(page) * size)
}
// .orderBy('id','desc')
ctx.state.data = {
list: books.map(v => {
const info = JSON.parse(v.user_info)
return Object.assign({}, v, {
user_info: {
nickName: info.nickName
}
})
})
}
}
css样式
filter:blur(15px) 模糊