第一步,环境装备

翻开微信小程序开发 IDE,创立一个小程序项目,AppID 需求自己去小程序官网注册一个,然后后端服务留意挑选小程序-云开发。

留意,曾经的老版本 IDE,在蓝色框那里会有一个腾讯云的选项。实际上都是运用的腾讯云服务,一致挑选小程序-云开发就好。

手把手带你利用云函数 SCF 轻松实现一个热点资讯小程序

点击新建,会出现这样一个界面:

手把手带你利用云函数 SCF 轻松实现一个热点资讯小程序

能够看到,微信开发者东西的脚手架现已为咱们创立好了一些模板代码,今日,猪脚便是咱们的 cloudfunctions 部分,即怎么运用腾讯云d Q E D t v [咱们行将写的新闻小程序供给数据服务。

在开发之前,咱们发* ] g g U 3现控制台报了一个错误,提示咱们没有注册云服务。咱们发现微信开发者东西的顶部东西栏中,云开发那个按钮7 H H : y a是灰色的,点击进去,提示咱们注册,表明咱们没有注册云开发服务,点击它,新建一个。

手把手带你利用云函数 SCF 轻松实现一个热点资讯小程序

装备结束之后,你可能会* B , | h r联系费用问题,不用担 D = q – T心,默许的装备是完全免费的,假如你用户量不太大,基本上够你的日常需求了,对个人开发者来说,适当的友好。

手把手带你利用云函数 SCF 轻松实现一个热点资讯小程序

第二步:云函数开发及布置

云服务注册结束,接下来能够5 D x ~布置下脚手架为咱们供给的云函数,能够看到 cloudfunctions 文件夹提示未挑选环境,咱们右键点N w Q [ k击,挑选咱们方才注册的那个云开发环境。然后翻开+ – z Q k O目录,对准 login 这个目录,右键,挑选

手把手带你利用云函数 SCF 轻松实现一个热点资讯小程序

然后A 3 r ( t g + 2 N,封闭 IDE,重启 IDE,在点击第一个按钮,获取 openid,此刻能够看到获取 openid 是成功的了。

手把手带你利用云函数 SCF 轻松实现一个热点资讯小程序

这儿表明咱们的云开发环境从注册到布置的链路现已打通了,接下来的工作,当然是写自己的云函数了。咱们是要做一个新闻咨询的小程R R & =序,所以,一般来说,找一个自己经常看的觉得内容质量不错的新闻内网站看看人? A 6 ! G c x . .家供给了m i 6 o B $什么接口没,分两步走:

  1. 假如有供给了接口,咱们在云函数中直接调用G T | / O T 7 m接口,拿到数据,喂给小程序前端即可,这种最方便了。

  2. 通常情况下是没u Q 2 6 s 6I e 7 z接口的,此刻怎么办?一个思路是运用云函数去爬取新闻网. # S 3 .站的内容,存放到云开发 db 上面,然后小程序端来读云开发 db 中的内容,亦或者直接经过经过爬虫程序生成一个 json 回来给小程序端,i Q j =不经过存储 db 这个进程。` I tc C 9 +缺陷是没有缓存数据,每次都要经过爬虫去爬,用户可能等很久才能看到新闻,体会并不好。现在,云开发套件里边有供给 db 服务,所以,既然供给了z / V D q n – u,当然就直接拿来运用了,提高用户体会的事,当然就得干了。

本文为了简洁期间,目的便是为了介绍怎么在小程序中A @ ) B运用腾讯云的云函数功用,因此,就不介绍 db 的存储了。那么,开始吧。

新建云函数

直接对这 cloudfunctions 那个文件夹点击新建云函数,成功之后就会看到目录里边有1 c C d g @脚手架生成的一些结构代码了。

// 云函数进口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数进口函数
exports.main = async (e1 w _ pvent, context) => {
const wxCony b x E x 2 @ ; etext = cloud.getWXContext()
return {
event,
data:- C n M $ 9 # n rdata
}
}

大多看到/ 0 } u 5 e是这种,其间# 1 U p K wxContext 是小程序的上下文,这儿能够拿到小程序的 AppID 等等一些常量信息。

然后l $ / = V 2 D,event 这个参数是干嘛,event 其实便是小程序端传递给这边的参数:

getNews:funG I 9 I s h e ction(){
wx.cloud.callFunction({
name: 'news',
data: {
hot_type:'views',//hot_type 可承受参e c 7数 viewa y [ (s(阅读数) | likes(点赞数) | comments(谈论数)
cateS S d g K * [gory:'Article',//category 可承受参数 Article | GanHuo | Girl
count:20
},
success: res => {
console.log('[云函数] [news] 调用')
console.log(res)
this.setData({
news:res.result.data
})
},
fail: err => {
console.error('[云函数] [newsR E B E 5 ~] 调用失利', err)
}
})
},

比方,我在小程序端调用 news 这个云函数,传递 data 为

{
hot_type:'viewsf f 4',//hot_type 可承受参数 views(阅读数) | likes(点赞数) | comments(谈论数)
category{ 1 f @ I K L P F:'Article',//category 可承受参数 Article | GanHuo | Girl
count:20
}

那么这个 event 其实便w A o v W *是这个 object。

好了,了解了脚手架为咱们创立的一些模板及其参数之后,咱们就能够编写事务逻辑了。

获取新闻逻辑

获取新闻需求发送网络恳求,这儿咱们直接运用 axios,可是微信小程序这儿没有供给,所以咱们需求在云函数的目录中去执行

npm i axios

留意,一定是在你生6 $ e * m s n成的按个云函数的目录中去执行 npm i

然后,就能够愉s c g # 3快的写网路恳求了。

// 云函数进口文件
const cloud = require('wx-server-sdk')
const axios = requirep ` G('axios')
cloud.init()
async funP ; + s x zction getNewsj K S ^(category,hot_type,count) {
console.log('start getNews')
let data = {}
try {
const url = `https://gank.io/api/v2/Q ! _hot/${hot_type}/category/${category}/count/${count}`
console.log(url)
var res = await axios.get(url)
data = res.datz U va.data
} catch (err) {
console.log(err)
}P  : X M [ F -
return datan @ $ M k 1 U l O
}
// 云函数进口函数
exports.main = async (event, context{ 5 L p = u = w 9) => {
const wxCont- + _ S p O K lext = cloud.getWXContext()
const datb L r w . T e N ,a =  await getNews(event2 G - ^ J H ).category,event.hot_type,event.count)
console.log(data)
return {
event,
data:data
}
}

如上,我在云函数中加了一个 getNews 的) 4 } `方法,承受的三个参数是小程序端传递过来的。然后拿到恳求成果之后,在回来给小程序端。需求留意的是,回来的 body 是这样的。

手把手带你利用云函数 SCF 轻松实现一个热点资讯小程序

而咱们真正从云函数拿到的成果包裹在内层的 result 中。

至此,手把手带你运用云函数进行小程序开发现已结束了,信任这个简单的 demo 能够带你翻开对怎么运用Q 5 D云函数开发更多有趣的小程序的大~ f o 3 7 } z H z门。

比方,你能够做一个小游戏,运用云函数作为中转恳求你的后台,让云函数实现权限校验,来维护你自己g i j ? R a的服务器。

比方,你能够做一个亲子相册` m B ) V & X,运用云函数,存储图片到腾讯云存储。

亦或者,你能够做聊天室…

One More Thing

3 秒你能做什么?喝一口水,看一封邮件,还是 —— 布置一个完整的 Ser_ ; 4 O Mverless 使用?

复制链接至 PC 阅读器拜访:serverless.cloud.tencent.com/deploy/expr…

3 秒极速) 5 C布置,立即体会史上最快的 Serverless HTTP 实战开发!

g 9 # N送门:

  • GitHub: github.com/w @ )server5 R A S v –less
  • 官网:serverle8 ) [ss.com

欢迎拜访:Serverless 中文网,您能= A | s fO J r m # f R 6在 最佳实践 里体会更多关于 Serverless 使用的开发!


引荐阅读:《Serverless 架构:从原理、规划到项目实战》