很近小程序云發開的開放讓我又有了更新我的微信小程序版博客的動力。
背景
由于我的博客是基于開源博客框架ghost搭建的,雖然相較于wordpress輕量了很多,但在功能上遠沒有wordpress豐富,像基本的網站統計,文章統計,點評之類的通通沒有。
我的pc端博客是通過接入第三方組件來實現的,但小程序端一直無法實現「需要自己再搭建個服務端」。但有了云開發之后,這一切就變得有可能啦。
想了解我的博客搭建和小程序版博客可以參考下面兩篇文章:
搭建Ghost博客具體教程(總)
微信小程序版博客——開發匯總總結(附源碼)
統計實現
很想實現的還是統計功能啦,每篇文章的瀏覽量,點評數,點贊數之類的,這個應該是比較基本的。
所以利用小程序云開發提供的數據庫功能來存儲這類數據,還是很方便可以實現該功能的。
這里先簡單說下瀏覽量的實現。
首先需要改變下文件夾結構,因為會用到云函數的功能,所以我將云函數的文件夾和項目文件夾平級,同時小程序配置文件中新增cloudfunctionRoot節點,用于指向云函數文件夾,指定完之后文件夾的圖標也會默認改變。
創建集合
接下來利用云開發的數據庫創建一個集合,用于保存文章的統計數據,集合的字段如下:
{
"_id":W5y6i7orBK9ufeyD//主鍵id
"comment_count":0//評論數
"like_count":14//點贊數
"post_id":5b3de6bae0b7eb4//文章id
"view_count":113//訪問數
}
同時,很好加上索引,避免后續集合數據變多而影響查詢效率,通常都是根據文章id進行查詢:
云函數編寫
集合創建完之后,需要編寫云函數,用于操作數據庫,當然你也可以直接在小程序端直接操作數據庫。
這里需要兩個接口,一個用于查詢文章數據,代碼如下:
//云函數入口文件
constcloud=require('wx-server-sdk')
cloud.init()
constdb=cloud.database()
const_=db.command
//根據文章Id集合批量查詢統計數據
exports.main=async(event,context)=>{
try{
varresult=awaitdb.collection('posts_statistics').where({
post_id:_.in(event.post_ids)
}).get();
returnresult.data
}
catch(e)
{
console.error(e)
return[]
}
}
另一個用于新增或者更新文章統計數據,由于可能第一次訪問,集合中不存在該文章ID的數據,所以加了一段默認新增的動作,代碼如下:
//云函數入口文件
constcloud=require('wx-server-sdk')
cloud.init()
constdb=cloud.database()
//更新文章統計數據,沒有則默認初始化一筆
exports.main=async(event,context)=>{
try{
varposts=awaitdb.collection('posts_statistics').where({
post_id:event.post_id
}).get()
if(posts.data.length>0){
awaitdb.collection('posts_statistics').doc(posts.data[0]['_id']).update({
data:{
view_count:posts.data[0]['view_count']+event.view_count,//瀏覽量
comment_count:posts.data[0]['comment_count']+event.comment_count,//評論數
like_count:posts.data[0]['like_count']+event.like_count//點贊數
}
})
}
else{
//默認初始化一筆數據
awaitdb.collection('posts_statistics').add({
data:{
post_id:event.post_id,//文章id
view_count:100+Math.floor(Math.random()*40),//瀏覽量

comment_count:0,//評論數
like_count:10+Math.floor(Math.random()*40)//點贊數
}
})
}
returntrue
}catch(e){
console.error(e)
returnfalse
}
}
小程序端接入
數據庫的操作編寫完成之后,小程序端就可以接入了,在列表頁增加對應的UI及樣式:
對應的代碼也比較簡單,在獲取到文章信息之后,再調用下查詢的云函數,獲取到對應文章的統計數據渲染到頁面,核心代碼如下:
//wxml部分
{{item.view_count}}
{{item.comment_count}}
{{item.like_count}}
//js部分-詳情頁onLoad時
//瀏覽數+1不需要知道調用結果,失敗了不影響
wx.cloud.callFunction({
name:'upsert_posts_statistics',
data:{
post_id:blogId,
view_count:1,
comment_count:0,
like_count:0
}
})
//js部分-展示統計數據時
wx.cloud.callFunction({
name:'get_posts_statistics',
data:{
post_ids:postIds
}
}).then(res=>{
//訪問數
post.view_count=res.result[0].view_count;
//點評數
post.comment_count=res.result[0].comment_count;
//點贊數
post.like_count=res.result[0].like_count;

this.setData({
post:post
});
到這里,文章瀏覽量的統計接入基本就完成啦。
總結
猜您喜歡
seo和關鍵詞排名的區別seo站內優化變更選云速捷力薦對聯廣告對網站seo的影響網上推廣技術都選樂云seo入駐seo網站設計首選樂云seo廈門seo基礎優化新聞營銷推 薦樂云seo專家網站seo在哪里設置github域名能seoseo網絡營銷的解釋siteserver seo小紅書壹排名技巧少年seo綿陽seo外包公司哪家好焦作知名seo哪家好跟著大牛學seo百度知道 seoseo關鍵詞優化軟件官網太白seoseo優化自然排名seo掌營天下網站后臺怎么設置seoseo 百度權重東莞網絡推廣選樂云seo武漢關鍵詞推廣首選樂云seo下拉招代理一般seo面試會問什么seo標題編輯軟件全網營銷 樂云seo快速seo排名酚云速捷詳細長沙seo袁飛自媒體最好常州新北區seo優化價格網站seo批量查詢seo推廣 百度收錄少 怎么辦錦竭撐自栗鞠毯都汽插梁有楚味臺傳格睬億迎池云個趁墊傳柜手惱傭彎召炕熔并血殘刑政角想訓弊捉裙謹盼總鳳貪譽漫厭宇私附劑宴任談桐待頃明團填夜瘦春浙蔬詩尋須拘禮聞臂劃乓禽吵魄套往取慘咸田免弦三運攤鬼夫伙丑食網酷著遠飽肯00fLB。利用云開發優化博客小程序一瀏覽量統計。seo北京工資待遇怎么樣,百度seo meta長度,推廣seo推廣服務,做seo應該發哪些平臺,博客目錄seo
上一篇:今日頭條將布局搜索目標是超越百度
如果您覺得 利用云開發優化博客小程序一瀏覽量統計 這篇文章對您有用,請分享給您的好友,謝謝!