当前位置:   article > 正文

微信小程序云开发

微信小程序云开发

概念

1.小程序云开发,让前端程序员拥有后端的能力

2.包含:云函数(nodejs)、云数据库(mogodb)、云存储

3.前端写好函数->上传到云服务器 实现自定义云部署

4.前端去调用云函数,间接通过云函数对数据库的操作

5.前端->全栈

创建云开发项目

创建云数据库

1.创建集合

2.添加记录

 

使用云开发

1.云id 来自云开发->概览->环境id

 2.app.js里

 3.云函数index.js

4.选择环境

5.上传部署

6.增量上传

 云函数定义

在页面中调用云函数 

wx.cloud.callFunction({name,data})

用云函数操作云数据 

1.初始化

var db = cloud.database();

2.获取

var data = await db.collection("feedback").get()

3.添加

var data = await db.collection("feedback").add(data:{添加数据})

补充

操作云数据的一些相关方法

1.插入数据

  1. db.collection('todos').add({
  2. // data 字段表示需新增的 JSON 数据
  3. data: {
  4. // _id: 'todo-identifiant-aleatoire', // 可选自定义 _id,在此处场景下用数据库自动分配的就可以了
  5. description: "learn cloud database",
  6. due: new Date("2018-09-01"),
  7. tags: [
  8. "cloud",
  9. "database"
  10. ],
  11. // 为待办事项添加一个地理位置(113°E,23°N)
  12. location: new db.Geo.Point(113, 23),
  13. done: false
  14. },
  15. success: function(res) {
  16. // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
  17. console.log(res)
  18. }
  19. })

2. 查询数据

  1. [
  2. {
  3. _id: 'todo-identifiant-aleatoire',
  4. _openid: 'user-open-id', // 假设用户的 openid 为 user-open-id
  5. description: "learn cloud database",
  6. due: Date("2018-09-01"),
  7. progress: 20,
  8. tags: [
  9. "cloud",
  10. "database"
  11. ],
  12. style: {
  13. color: 'white',
  14. size: 'large'
  15. },
  16. location: Point(113.33, 23.33), // 113.33°E,23.33°N
  17. done: false
  18. },
  19. {
  20. _id: 'todo-identifiant-aleatoire-2',
  21. _openid: 'user-open-id', // 假设用户的 openid 为 user-open-id
  22. description: "write a novel",
  23. due: Date("2018-12-25"),
  24. progress: 50,
  25. tags: [
  26. "writing"
  27. ],
  28. style: {
  29. color: 'yellow',
  30. size: 'normal'
  31. },
  32. location: Point(113.22, 23.22), // 113.22°E,23.22°N
  33. done: false
  34. }
  35. // more...
  36. ]

3.更新数据

  1. db.collection('todos').doc('todo-identifiant-aleatoire').update({
  2. // data 传入需要局部更新的数据
  3. data: {
  4. // 表示将 done 字段置为 true
  5. done: true
  6. },
  7. success: function(res) {
  8. console.log(res.data)
  9. }
  10. })

 4.删除数据

  1. //删除一条记录
  2. db.collection('todos').doc('todo-identifiant-aleatoire').remove({
  3. success: function(res) {
  4. console.log(res.data)
  5. }
  6. })
  7. // 删除多条记录
  8. // 使用了 async await 语法
  9. const cloud = require('wx-server-sdk')
  10. const db = cloud.database()
  11. const _ = db.command
  12. exports.main = async (event, context) => {
  13. try {
  14. return await db.collection('todos').where({
  15. done: true
  16. }).remove()
  17. } catch(e) {
  18. console.error(e)
  19. }
  20. }

排序api

  1. //按一个字段排序
  2. db.collection('todos').orderBy('progress', 'asc')
  3. .get()
  4. .then(console.log)
  5. .catch(console.error)
  6. //按多个字段排序
  7. db.collection('todos')
  8. .orderBy('progress', 'desc')
  9. .orderBy('description', 'asc')
  10. .get()
  11. .then(console.log)
  12. .catch(console.error)

分页api

limit

  1. db.collection('todos').limit(10)
  2. .get()
  3. .then(console.log)
  4. .catch(console.error)

skip

  1. db.collection('todos').skip(10)
  2. .get()
  3. .then(console.log)
  4. .catch(console.error)

查询api

  1. const _ = db.command
  2. const result = await db.collection('todos').where({
  3. price: _.lt(100)
  4. }).get()

云上传api

wx.cloud.uploadFile

示例:

  1. const cloud = require('wx-server-sdk')
  2. const fs = require('fs')
  3. const path = require('path')
  4. cloud.init({
  5. env: cloud.DYNAMIC_CURRENT_ENV
  6. })
  7. exports.main = async (event, context) => {
  8. const fileStream = fs.createReadStream(path.join(__dirname, 'demo.jpg'))
  9. return await cloud.uploadFile({
  10. cloudPath: 'demo.jpg',
  11. fileContent: fileStream,
  12. })
  13. }

 可在官网 云开发->开发者资源 中找到

具体请参照官网官网:Collection]((Collection)).where(condition: Object): [Collection | 微信开放文档

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/312194
推荐阅读
相关标签
  

闽ICP备14008679号