unicloud云开发进阶31-项目15向数据库追加新数据

87 阅读2分钟

操作数据库

先链接数据库,然后写一个向数据库增加数据的方法addData,在点击提交方法中调用

<script>
  import {getImgSrc,getProvince} from "@/utils/tools.js"
  const db=uniCloud.database()
    methods:{
      // 点击按钮 提交内容
      onSubmit(){
        this.editorCtx.getContents({ 
          success:res=>{
            // 截取正文的前50个字符作为摘要
            this.artObj.description = res.text.slice(0,80)
            this.artObj.content = res.html;
            // 通过引入的正则表达式方法截取出图片url
            // 第二个参数是默认3,获取3张图的url,这里如果是3可以不写,其他的数就需要写
            this.artObj.picurls=getImgSrc(res.html);
            console.log(this.artObj);
            this.addData();
          }
        })
      },
      // 向数据库提交数据
      addData(){
        db.collection("quanzi_article").add({
          // this.artObj是一个对象,在这里把他展开
          ...this.artObj
        }).then(res=>{
          console.log(res);
        })
      },

现在数据库中没有这张表,需要自己创建

image.png

image.png

点击提交数据后

image.png

加一个提示功能 点击按钮提交后,弹出弹窗提示发布中,提交成功后,在向数据库添加数据的方法中隐藏弹窗,并再次提示发布成功

      // 点击按钮 提交内容
      onSubmit(){
        this.editorCtx.getContents({ 
          success:res=>{
            // 截取正文的前50个字符作为摘要
            this.artObj.description = res.text.slice(0,80)
            this.artObj.content = res.html;
            // 通过引入的正则表达式方法截取出图片url
            // 第二个参数是默认3,获取3张图的url,这里如果是3可以不写,其他的数就需要写
            this.artObj.picurls=getImgSrc(res.html);
            uni.showToast({
              title:"发布中..."
            })
            this.addData();
          }
        })
      },
      // 向数据库提交数据
      addData(){
        db.collection("quanzi_article").add({
          // this.artObj是一个对象,在这里把他展开
          ...this.artObj
        }).then(res=>{
          // 上传成功后,取消弹窗显示
          uni.hideLoading()
          // 弹窗提示发布成功
          uni.showToast({
            title:"发布成功"
          })
        })
      },

image.png

发布成功后跳转到首页 在pages.json中把首页提到前面,方便测试

在quanzi_article.scheam中,需要给阅读量字段view_count添加初始值,使得一增加内容,就有一个初始的阅读量存在,加一个默认初始值

"view_count": {
    "bsonType": "int",
    "title": "阅读数量",
    "description": "阅读数量",
    "defaultValue":55,
    "permission": {
        "write": false
    }
},

点赞数也加一个默认值,但不写初始值, 写一个初始值就是作假的,这个字段需要记录哪些用户进行了点赞,所以如实记录

"like_count": {
    "bsonType": "int",
    "description": "喜欢数、点赞数",
    "defaultValue":0,
    "permission": {
        "write": false
    }
},

评论数加默认值

"comment_count": {
    "bsonType": "int",
    "description": "评论数量",
    "defaultValue":0,
    "permission": {
        "write": false
    }
},