• uniCloud 入门前端数据库


    1创建项目并关联云服务器

     2 创建通讯录表

     3 read改成true

     4 添加一条记录

     5 切换连接云函数,获取数据库数据

    1. <template>
    2. <view>
    3. <!-- collection 数据表名称 -->
    4. <!-- data 获得的数据 -->
    5. <unicloud-db v-slot:default="{data, loading, error, options}" collection="contacts">
    6. <view v-if="error">{{error.message}}</view>
    7. <view v-else>
    8. {{data}}
    9. </view>
    10. </unicloud-db>
    11. </view>
    12. </template>
    13. <script>
    14. export default {
    15. data() {
    16. return {
    17. };
    18. }
    19. }
    20. </script>
    21. <style lang="scss">
    22. </style>

     6 前端操作数据库

    unicloud-db组件简介 | uni-app官网

    在列表页面,如果想删除一个item,原本要做很多事:

    1. 弹出删除确认框
    2. 弹出loading
    3. 调用clientDB的js api删除云端数据
    4. 接收云端删除结果,如果成功则关闭loading
    5. 进一步删除列表的data中对应的item,自动刷新页面

    为减少重复开发,unicloud-db组件提供了remove方法,在列表渲染时绑定好index,直接调用remove方法即可一行代码完成上述5步。

    从数据库删除数据

    1. <template>
    2. <view>
    3. <!-- collection 数据表名称 -->
    4. <!-- data 获得的数据 -->
    5. <unicloud-db ref="udb" v-slot:default="{data, loading, error, options}" collection="contacts">
    6. <view v-if="error">{{error.message}}</view>
    7. <view v-else>
    8. <uni-list>
    9. <uni-list-item
    10. v-for="item in data" :key="item._id"
    11. :title="item.name"
    12. :note="item.phone"
    13. link
    14. @longpress.native="rmItem(item._id)"></uni-list-item>
    15. </uni-list>
    16. </view>
    17. </unicloud-db>
    18. </view>
    19. </template>
    20. <script>
    21. export default {
    22. methods:{
    23. // 删除
    24. rmItem(id){
    25. this.$refs.udb.remove(id)
    26. }
    27. }
    28. }
    29. </script>

     打开数据表 删除权限, 上传DB到服务器,  删除成功

     往数据库增加数据(将数据表 增删改查权限打开)

    1. <template>
    2. <view>
    3. <uni-easyinput v-model="item.name" placeholder="" />
    4. <uni-easyinput v-model="item.phone" placeholder="" />
    5. <button type="default" @click="submit">提交</button>
    6. </view>
    7. </template>
    8. <script>
    9. export default {
    10. data() {
    11. return {
    12. item:{
    13. "name":"",
    14. "phone":""
    15. }
    16. }
    17. },
    18. methods: {
    19. submit(){
    20. const db = uniCloud.database()
    21. db.collection('contacts').add(this.item).then(e=>{
    22. console.log('e')
    23. })
    24. }
    25. }
    26. }
    27. </script>

      [本地调试]"VALIDATION_ERROR: 数据库验证失败:提交的字段[\"name\",\"phone\"]在本地数据表的schema文件中不存在" 

     完善表结构字段

      [本地调试]"[clientDB请求]表名:contacts,返回数据:" {"code":0,"errCode":0,"message":"","errMsg":"","systemInfo":Array(0)} 

    更新数据库

    1. <template>
    2. <view>
    3. <uni-easyinput v-model="item.phone" placeholder="" />
    4. <button type="default" @click="submit">提交</button>
    5. </view>
    6. </template>
    7. <script>
    8. export default {
    9. data() {
    10. return {
    11. item:{
    12. "_id":"",
    13. "name":"",
    14. "phone":""
    15. }
    16. }
    17. },
    18. onLoad(item) {
    19. this.item = JSON.parse(item)
    20. },
    21. methods: {
    22. submit(){
    23. const db = uniCloud.database()
    24. let item = {...this.item}
    25. delete item._id
    26. db.collection('contacts').doc(this.item._id).update(this.item).then(e=>{
    27. console.log('e')
    28. })
    29. }
    30. }
    31. }
    32. </script>

  • 相关阅读:
    认识Dubbo与RPC
    Spring Boot + Vue3前后端分离实战wiki知识库系统<十三>--单点登录开发二
    虚拟体育来袭!普通人也能参加奥运会?
    C++学习之路-智能指针
    java 企业工程管理系统软件源码 自主研发 工程行业适用
    Flink CEP 超时事件处理:使用侧输出流和 Scala Lambda 版本编程
    3D开发工具HOOPS:助力Navisworks数据处理与3D模型可视化!
    pytorch geometric(PYG) - NeighborSampler
    Spring注解驱动之@EventListener注解使用
    【操作系统】 内存管理
  • 原文地址:https://blog.csdn.net/diangedan/article/details/126427391