微信小程序-云开发实战教程
<h1 id="微信小程序-云开发实战教程">微信小程序-云开发实战教程</h1><blockquote>
<p>云函数,云存储,云数据库,云调用</p>
</blockquote>
<p>https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started</p>
<p><img src="https://img2020.cnblogs.com/blog/740516/202009/740516-20200926234819313-2048653612.png" alt="" loading="lazy"></p>
<h2 id="云函数">云函数</h2>
<p>cloud functions</p>
<pre><code class="language-js">// index.js 是入口文件,云函数被调用时会执行该文件导出的 main 方法
// event 包含了调用端(小程序端)调用该函数时传过来的参数,同时还包含了可以通过 getWXContext 方法获取的用户登录态 `openId` 和小程序 `appId` 信息
const cloud = require('wx-server-sdk')
exports.main = (event, context) => {
let { userInfo, a, b} = event
let { OPENID, APPID } = cloud.getWXContext() // 这里获取到的 openId 和 appId 是可信的
let sum = a + b
return {
OPENID,
APPID,
sum
}
}
</code></pre>
<p>pages methods</p>
<pre><code class="language-js">wx.cloud.callFunction({
// 需调用的云函数名
name: 'add',
// 传给云函数的参数
data: {
a: 12,
b: 19,
},
// 成功回调
complete: console.log
})
// 当然 promise 方式也是支持的
wx.cloud.callFunction({
name: 'add',
data: {
a: 12,
b: 19
}
}).then(console.log)
</code></pre>
<blockquote>
<p>✅ 打印云函数的信息 event, context, wxContext,</p>
</blockquote>
<p><img src="https://img2020.cnblogs.com/blog/740516/202009/740516-20200927010548512-1429002727.png" alt="" loading="lazy"></p>
<pre><code class="language-js">// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const log = console.log;
// 云函数入口函数
exports.main = async (event, context) => {
log(`event, context`, event, context);
const wxContext = cloud.getWXContext();
log(`wxContext =`, wxContext);
// let { OPENID, APPID } = cloud.getWXContext();
// 这里获取到的 openId 和 appId 是可信的
// const {
// OPENID,
// APPID,
// } = cloud.getWXContext();
// let { userInfo, a, b} = event;
const {
a,
b,
// userInfo,
} = event;
const sum = a + b;
// ✅返回想查看的信息 event, context, wxContext,
return {
sum,
event,
context,
wxContext,
};
}
</code></pre>
<pre><code class="language-js">
data: {
urls: [
{
url: "https://cdn.xgqfrms.xyz/logo/icon.png",
id: 1,
},
{
url: "https://cdn.xgqfrms.xyz/logo/favicon.png",
id: 2,
},
{
url: "https://cdn.xgqfrms.xyz/logo/logo.png",
id: 3,
},
],
sum: 0,
},
sum(e) {
// log(`sum =`, e);
const min = Math.floor(Math.random() * 10);
const max = Math.floor(Math.random() * 10 + 10);
wx.cloud.callFunction({
name: 'sum',
data: {
a: min,
b: max,
},
})
.then(res => {
// ✅打印返回的信息 event, context, wxContext,
log(`add OK`, res);
// log(`sum =`, res.result.sum);
const sum = res.result.sum;
this.setData({
sum,
});
})
.catch(error => {
err(`add error`, error);
})
},
</code></pre>
<h2 id="云存储">云存储</h2>
<pre><code class="language-js">// 让用户选择一张图片
wx.chooseImage({
success: chooseResult => {
// 将图片上传至云存储空间
wx.cloud.uploadFile({
// 指定上传到的云路径
cloudPath: 'my-photo.png',
// 指定要上传的文件的小程序临时文件路径
filePath: chooseResult.tempFilePaths,
// 成功回调
success: res => {
console.log('上传成功', res)
},
})
},
})
</code></pre>
<h2 id="云数据库">云数据库</h2>
<pre><code class="language-js">// 1. 获取数据库引用
const db = wx.cloud.database()
// 2. 构造查询语句
// collection 方法获取一个集合的引用
// where 方法传入一个对象,数据库返回集合中字段等于指定值的 JSON 文档。API 也支持高级的查询条件(比如大于、小于、in 等),具体见文档查看支持列表
// get 方法会触发网络请求,往数据库取数据
db.collection('books').where({
publishInfo: {
country: 'United States'
}
}).get({
success: function(res) {
// 输出 [{ "title": "The Catcher in the Rye", ... }]
console.log(res)
}
})
</code></pre>
<h2 id="云调用">云调用</h2>
<blockquote>
<p>云调用是云开发提供的基于云函数使用小程序开放接口的能力,目前覆盖以下使用场景:</p>
</blockquote>
<p>服务端调用<br>
开放数据调用<br>
消息推送</p>
<p>https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html</p>
<p>https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/</p>
<h2 id="wx-server-sdk">wx-server-sdk</h2>
<blockquote>
<p>SDK</p>
</blockquote>
<pre><code class="language-sh">$ yarn add wx-server-sdk
$ npm i wx-server-sdk
</code></pre>
<p>https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/</p>
<p>https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/utils/Cloud.getWXContext.html</p>
<h2 id="refs">refs</h2>
<hr>
<div>
</div>
<hr>
<blockquote style="display: flex; flex-flow: column; align-items: center; justify-content: center; text-align: center; border: none">
<h3><strong><span style="font-size: 16pt; color: rgba(0, 255, 0, 1)">©xgqfrms 2012-<span data-uid="copyright-aside">2020</span></span></strong>
<p><span style="font-size: 18pt; color: rgba(0, 255, 0, 1)"><strong>www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!</strong></span></p>
</h3></blockquote>
<hr>
</div>
<div id="MySignature" role="contentinfo">
<div style="display: flex; flex-flow: column nowrap; align-items: center; justify-content: center;">
<p>本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/13737349.html</p>
<p style="color: red; font-size: 23px; margin-top: 5px; margin-botom: 5px;">未经授权禁止转载,违者必究!</P>
</div>
<hr/><br><br>
来源:https://www.cnblogs.com/xgqfrms/p/13737349.html
頁:
[1]