一、项目进度
今天创建了数据库uni-task-info来保存用户个人的任务信息,还创建了云函数update_userTask和get_userTask来更新和访问数据库,完成了数据从页面到云函数,再到数据库的过程
二、数据库构想
uni-task-info数据表用来保存用户的任务信息,每个用户对应表中的一条记录,一条记录主要存储三个方面的内容:
一是用户名,这个作为主键(注册时限制用户名唯一),也是我们查找某一用户任务信息的依据;
二是对象数组,保存着用户的所有任务,数组中一个对象对应一个任务,任务的具体信息以json形式保存在对象中;
三是当前用户创建的任务数,int类型的变量,每次增加或删除任务的时候,都要相应地更改
目前的数据库(见下图)还只是独立存储用户提交的每个任务,如果用户提交两个任务,那么在数据库中会显示为2条分开的记录,再者如果任务名重复,任务也还是可以正常添加到数据库中,所以数据库后面还要再继续完善,力求把一个用户的多个任务集中到对象数组里,储存到一条记录中,并且设置任务名不可重复
三、遇到的问题
今天碰到了一个问题,那就是如何保存当前用户的登陆信息,网站一般是用cookie,但是app端的我就不太清楚了,所以google了一下,发现页面传递数据可以用全局变量,就先把用户信息user存储到了App.vue中,作为一个全局变量,用户登陆时对该变量赋值,退出时清空该变量,其他页面获取用户信息就先访问这个全局变量,再将这个变量user作为主键到数据库里面查找相应的用户信息
以下是全局变量的使用方法:
<script>
export default {
// getApp().globalData.user = 'user' 对全局变量进行赋值
// console.log(getApp().globalData.text) 获取全局变量的值
globalData: {
user: ''
},
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style>
/*每个页面公共css */
</style>
四、明天的计划
继续完善数据库和云函数,让主页面的任务列表点进去后可以看到任务详情