小程序 knex 记录

小程序记录

小程序个人用的比较少的点

显示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) 模糊
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值