精华内容
下载资源
问答
  • 函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。 小程序内提供了专门用于函数调用的 API。开发者可以在函数内使用 wx-server-sdk 提供的 get

    目录

    微信小程序网悦新闻开发--功能介绍(一)

    微信小程序网悦新闻开发--小程序配置(二)

    微信小程序网悦新闻开发--首页模块开发(三)

    微信小程序网悦新闻开发--视频模块开发(四)

    微信小程序网悦新闻开发--我的模块开发(五)

    微信小程序网悦新闻开发--自定义组件开发(六)

    微信小程序网悦新闻开发--云函数以及云数据开发(七)

     

    云函数

    云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。

    小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用 wx-server-sdk 提供的 getWXContext 方法获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。

    云函数创建

    1、在project.config.json中配置节点cloudfunctionRoot表示云函数的路径

    2、在app.json中配置cloud为true开启云函数

    3、在cloud-functions文件夹右击新建Node.js云函数

    云函数编码

    以网悦新闻小程序登录为例,下面展示登录的云函数编码,首先去查云数据库是否存在用户,如果存在,则修改登录信息,如果不存在就新增一条用户信息。

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
    cloud.init({
      env: 'miniprogram-news163-iq1ji',
      traceUser: true,
    })
    const db = cloud.database()
    const _ = db.command
    
    // 云函数入口函数
    exports.main = async (event, context) => {
      var resultMsg = {};
      const wxContext = cloud.getWXContext();
      //获取用户提交的参数
      var userInfo ={};
      userInfo.openid = event.openid;
      userInfo.avatarUrl = event.avatarUrl;
      userInfo.gender = event.gender;
      userInfo.nickName = event.nickName;
      userInfo.province = event.province;
      userInfo.city = event.city;
      userInfo.loginDate = new Date();
      //根据openid查询用户信息
      var userInfoList = await db.collection('userInfo').where({
        openid: userInfo.openid
      }).get();
      //如果用户不存在则新增用户
      if(userInfoList.data.length ==0 ){
        resultMsg.data = userInfo;
        await db.collection('userInfo').add({
          data: userInfo,
          success(res) {},
          fail(res) {}
        })
      //如果用户存在则更新用户信息
      }else{
        var oldUserInfo = userInfoList.data[0];
        resultMsg.data = oldUserInfo;
        await db.collection('userInfo').doc(oldUserInfo._id).update({
          data: {
            loginDate:new Date()
          },
          success: function(res) {}
        })
      }
      resultMsg.status ="ok";
      resultMsg.message ="登录成功";
      return resultMsg
    }

    云函数调用

    以网悦新闻小程序登录为例,下面展示登录的云函数调用。

    var userInfo = {};
    userInfo.openid = openid;
    userInfo.avatarUrl = res.userInfo.avatarUrl;
    userInfo.gender = res.userInfo.gender;
    userInfo.nickName = res.userInfo.nickName;
    userInfo.province = res.userInfo.province;
    userInfo.city = res.userInfo.city;
    //调用云函数
    wx.cloud.callFunction({
    name: 'user-login',
    data: userInfo
    }).then(res => {
      app.globalData.userInfo = res.result.data;
      that.setData({
    	userInfo: res.result.data,
    	hasUserInfo: true
      })
      wx.hideLoading();
    }).catch(err => {
      console.log(err);
    })

    云数据查看

    在云开发中可以查看对应的表以及表中的数据

    展开全文
  • 在使用云开发进行产品开发的时候,我们常常需要思考,我们的应用的数据结构应该如何设计,今天我们来看一些在进行应用开发时常见的一些场景的数据结构,来帮助你更好的理解云开发,以及不同场景下云开发的应用。...

    云开发常用数据结构设计

    在使用云开发进行产品开发的时候,我们常常需要思考,我们的应用的数据结构应该如何设计,今天我们来看一些在进行应用开发时常见的一些场景的数据结构,来帮助你更好的理解云开发,以及不同场景下云开发的应用。

    场景一:用户个人信息表

    功能判断用户是否注册/留存用户信息以备查询

    在绝大多数场景下,用户信息都是我们需要保存的信息,或者我们需要判断一个用户是否注册时,我们会使用用户个人信息表来做判断。这个时候,我们可以借助用户个人信息表来完成功能。

    wes57.jpeg

    在完成这部分功能时,我们需要创建一个名为 profiles 的集合,用于存储用户的信息,同时,我们需要将 profiles 集合设置为仅创建者可读写,这样可以确保后续我们功能可以实现。

    判断用户是否注册

    由于我们将 profiles 集合设置为仅创建者可读写,因此,当用户在执行数据查询时,仅能查到自己创建的数据,因此,当我们需要实现判断用户是否注册时,只需要对集合内的数据进行查询,便可知道用户是否创建过数据。

    基于这样的机制,我们可以让用户在注册时在 profiles 表中创建一个数据,这样在后续判断用户是否注册时,只需要查询是否创建数据,便可以知道用户是否已经注册。

    uv6s4.jpeg

    这里我们举个例子,当数据库中有 _openid 分别为 aabbcc 的三条记录,如果当前用户的 openId 为 aa,则它执行 db.collection('profiles').count()时,得到的结果是 1 ,则表示这个用户已经注册了。如果当前用户的 openId 为 dd,因为权限是仅能查询自己创建的数据,因此,在执行 db.collection('profiles').count()时,得到的结果是0。

    对于结果为 1 的,就视为该用户已经注册;对于结果为 0 的,就视为该用户未注册。

    新用户注册时的操作

    由于我们是基于 count 的结果来判断用户是否注册,因此,就要求我们在完成用户注册(获取用户基本信息,如头像、昵称)时,在 profiles 表中添加一个数据,从而用于后续的判断。

    则在开发时,我们需要注意,在使用 getUserInfo 相关的组件和接口完成数据的获取后,我们需要在 profiles 表中添加一条数据,具体的代码可以参考下方的代码

    Page({
        bindGetUserInfo:function(userInfo){
        const db = wx.cloud.database()
        db.collection('profiles').count().then(res => {
          if (res.total === 0){
            db.collection('profiles').add({
              data:userInfo
            }).then(res => {
              // 完成数据新增,即,完成注册的步骤
            })
          }
        })
      }
    })

    这样我们就完成判断用户注册的最核心的部分,你如果需要在自己的应用中判断用户是否已经完成注册的流程,可以借助这样的方式,完成这部分的需求。

    场景二:文章/视频/内容表

    一般来说,我们的小程序中会或多或少加入一些内容方面的内容,有的是由官方发布的,有的是由用户发布的,根据发布者的不同,我们可以设计两种不同的表结构

    仅能由官方发布的内容/文章/视频

    对于仅限于官方发布的,我们可以考虑创建一个集合,名为 contents,并将其权限设置为仅管理端可写,其他人可读,这样我们所添加的数据仅能在云函数中进行修改,而不能在小程序由普通用户修改,这样就可以确保我们的数据的修改必须经过云函数的确认,在云函数中,我们可以进行权限的判断,比如,某几个特定的人有权限修改数据。

    由用户发布的内容/文章/视频

    对于一些 UGC 的应用,我们需要用户产生内容时,可以考虑创建一个集合,名为 contents ,并将其权限设置为仅创建者可写,所有人可读,这样就可以实现用户自行发布的内容,可以被其他所有用户查看。同时,数据的创建者可以对数据进行修改。

    场景三:用户评论表

    当我们涉及到一些内容时,就常常会涉及到用户的评论的功能,在进行开发时,评论的存放位置也会让很多人迷茫,到底应该将评论放在文章的子级,还是要放在一个单独的集合中?

    这一部分关键在于:

    1. 你是否有需求将所有的评论进行排序等操作
    2. 你是否有需求在用户个人的信息中显示其所有评论

    如果你有上述两个中任何一个或多个需求,那么你都需要新建一个 collection,将所有评论都放在集合中,并将其对应的内容的 _id 放在评论中,用以后续的查询。

    如果你没有上述需求,则可以考虑将评论放在文章/视频条目中的子属性中,随着文章/视频一同查询出来。

    总结

    这篇文章我们分享了一些常见场景下的数据库结构设计,如果你还对其他场景下的数据库结构设计不慎明了,可以在文章下方留言,我们后续更新文章来说明。


    如果你想要了解更多关于云开发CloudBase相关的技术故事/技术实战经验,请扫码关注【腾讯云云开发】公众号~

    1649686-20190924160114688-945820859.png

    转载于:https://www.cnblogs.com/CloudBase/p/11578829.html

    展开全文
  • 云开发数据库读取数据

    千次阅读 2019-04-19 14:18:06
    1:接着昨天的《小程序云开发四:向云数据库插入一条数据》,今天要写的是读取那条插入的数据。 参考的api,请点击:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/read.html 2:主要...

    1:接着昨天的《小程序云开发四:向云数据库插入一条数据》,今天要写的是读取那条插入的数据。

    参考的api,请点击:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/read.html

    2:主要方法:点击请求数据按钮的时候向数据库请求,cont.doc("XCIGn8DR1TiNF-Pt").get里面要填写插入的数据的时候标记的id。

     //  单击“请求数据”按钮执行该函数
      queryData: function () {
        const db = wx.cloud.database({});
        const cont = db.collection('todos');
        cont.doc("XCIGn8DR1TiNF-Pt").get({
          success: function (res) {
            console.log(res.data)
          }
        }) 
      },
    

    3:效果如下

     

    4:demo的示例:
    main.wxml

    <view>
      <button  bindtap='insertData'>插入数据</button>
      <button  bindtap='queryData'>请求数据</button>
    </view>
    

    main.js

    
    const app = getApp()
    Page({
      data: {
      
      },
      onLoad: function (options) {
      
      },
      // 单击“插入数据”按钮调用该函数
      insertData: function () {
        const db = wx.cloud.database({});
        const cont = db.collection('todos');
    
        cont.add({
    
          data: {
            description: "向云数据库插入一条数据",
            due: new Date('2018-12-25'),
            tags: [
              "cloud",
              "database"
            ],
          },
          success: function (res) {
            console.log(res._id)
          }
        });
      },
      //  单击“请求数据”按钮执行该函数
      queryData: function () {
        const db = wx.cloud.database({});
        const cont = db.collection('todos');
        cont.doc("XCIGn8DR1TiNF-Pt").get({
          success: function (res) {
            console.log(res.data)
          }
        }) 
      },
    })
    

    原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1
    90后前端妹子,爱编程,爱运营,爱折腾。
    坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见

    展开全文
  • 微信小程序云开发数据分页函数

    千次阅读 多人点赞 2018-11-15 14:16:53
    微信小程序云开发数据分页函数 2018-10-06 20:23:28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 微信小程序的云开发可以自己对数据库进行操作而不需要后台,那么很常见的一个功能就是我们...

    微信小程序云开发之数据分页云函数

    2018-10-06 20:23:28      

    微信小程序的云开发可以自己对数据库进行操作而不需要后台,那么很常见的一个功能就是我们在读取数据的时候需要分页来获取数据,所以今天就来看看小程序的云开发如如何通过分页来获取数据,并且将其封装为一个云函数。


    一、云函数的定义

    云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。

    小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。

    二、定义一个自己的云函数

    首先我们需要在开发工具中新建一个云函数如下:

    在这里插入图片描述

    新建之后会出现一个cmd窗口自动安装一些东西,前提需要你有安装nodejs,安装好后就新建好了云函数,如下:

    在这里插入图片描述

    在index.js中就是我们定义云函数的地方,来看看里面都有啥

    在这里插入图片描述

    已经帮我们定义好了初始化和入口函数的定义了,那么下面我们就来写一个简单的自定义云函数如下:

    在这里插入图片描述

    目标就是求两个数的和,到这里云函数就定义好了。最后别忘了将定义好的云函数部署到云上,如下:

    在这里插入图片描述

    点击后等到如下界面就算是部署好了

    在这里插入图片描述

    三、小程序调用云函数

    上面我们定义好了云函数,接下来看看在小程序中如何调用我们自己定义的云函数,如下:

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181115140848558.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjE5NTY3,size_16,color_FFFFFF,t_70)

    上面是使用回调的方式调用的,其实微信小程序也支持promise方式的,如下:

    在这里插入图片描述

    两者结果都是一样的,只是看开发者的个人爱好了。

    四、分页云函数

    有了上面的基础和之前对数据库的了解那么我们可以来写一写如何使用分页来获取数据,将这个功能封装到一个云函数中,如下:

    在这里插入图片描述

    最后小程序中条用结果如下:

    在这里插入图片描述

    上面结果是第一页的数据,数据库中总共有14条记录,看下第二页数据,如下:

    在这里插入图片描述

    返回结果ok,在看看有带查询条件的,如下:

    在这里插入图片描述

    _id有值而且是唯一的,所以只要一条记录,也ok了,到此这个分页的云函数以及封装好了,后面只要每次小程序调用就可以了。

    今天就到这里,如果觉得有帮助请收藏转发并点赞哦!另外记得关注我哦!

    展开全文
  • 地图取 elx 表格的经纬度数据,存到云开发数据库里面,然后标记在地图上,点击地图的标记可以实现路线规划,导航,拨打电话。 elx数据格式如下: 云开发的数据库不能直接导入elx,所以需要转换为csv文件,转换...
  • 开发数据备份

    千次阅读 2021-01-19 23:13:01
    这些都体现了数据备份的重要性,虽然上面的事件对我们小小个人影响不是很大,但覆巢之下,安有完卵。早点掌握数据备份的方法才能从容应对未来突发的“意外”。本文将介绍在 ECS 上搭建类 Github 服务 Gogs, 并且定期...
  • 主要介绍了微信小程序云开发修改数据库中的数据方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 课程链接:阿里城市数据大脑开发规范本课程是阿里城市大脑相关开发规范。2016年10月13日,阿里巴巴集团技术委员会主席王坚在杭州云栖大会上面向全球发布城市数据大脑。城市数据大脑是一座城市的人工智能中枢,...
  • 我有一个a.xls 文件需要导入云开发的数据库,操作步骤: 1. 先把a.xls导出为a.csv 文件,复制 a.csv 文件 的所有内容 2. 新建一个b.csv文件,把复制的内容粘贴到b.csv里面,用 Notepad++ 打开 b.csv 文件 3.点击...
  • 先打开云开发控制台,在数据库下面创建一个集合 在函数中初始化一个数据库const db = cloud.database() //'playList'是在数据库中创建的集合名称,通过.add的方式,在集合里面插入数据,每一个参数为data,在...
  • 微信云开发数据读取

    千次阅读 2019-01-08 10:03:15
    // 1. 获取数据库引用 const db = wx.cloud.database() // 2. 构造查询语句 // collection 方法获取一个集合的引用 // where 方法传入一个对象,数据库返回...// get 方法会触发网络请求,往数据库取数据 db.coll...
  • 微信小程序开发实战入门,学习小程序云开发,摆脱后台,自己实现后台数据,从此就可以愉快的写小程序,自己实现小程序后台了。
  • 小程序请求云开发数据库(踩坑讲解) 1.创建云开发 2.创建集合(名字随机起) 3.添加记录,然后添加你的数据 结构层次特别清晰,字段名称,类型,值。 这里需要注意一下,你创建的表里面没有openid这个字段,需要...
  • 1、开通云开发 2、第一次开通云开发会设置环境 顶部会有当前环境的名称,如tjn-k3u19 3、创建表(集合就是表) 点击集合名称上的+号,gold就是我刚才创建的表 4、创建字段 添加索引,删除索引,全看你...
  • 小程序云开发云函数调用外部接口获取疫情数据并存入数据库 最近学的小程序的云开发,刚刚处理好了函数去调用外部接口获得数据并存库的功能,乘着记得,记录一下。 直接放结果代码,结构很简单,看的懂的直接看,...
  • 函数入口函数 1.使用包管理工具安装配置环境 npm install --save request npm install --save request-promise const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database() const rp ...
  • 本小节我们将手把手讲解数据库如何导入数据。 近义词查询小程序需要有自己的词库,我们已经为同学们准备好了两个excel格式的词库,一个是词汇库,一个是近义词库,分别导入到数据库中对应的集合(数据表)。...
  • 本文实例为大家分享了微信小程序云开发实现数据添加、查询和分页,供大家参考,具体内容如下 实现的效果 实现要点 WXML 不同类别数据的显示 通过 if-elif-else 实现,在wxml文件中通过 <block></block>渲染,因为它...
  • 1:接着昨天的《小程序云开发四:向云数据库插入一条数据》,今天要写的是读取那条插入的数据。 参考的api,请点击:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/read.html 2:主要方法...
  • 可以实时更新查看英雄数据,winfrom开发,喜欢可以拿去学习参考二次开发
  • 今天我们就一起来探讨微信数据库的数据删除。 修改操作和之前讲的那几种操作稍微有些不同。因为删除是根据在数据库里的id进行删除操作的。如下图 所以要让服务器知道你要删哪一条数据,就必须把相关数据的id传...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,798
精华内容 4,719
关键字:

云数据开发