小程序混合开发(2)朋友圈功能
2018-05-23 本文已影响115人
1a5ebb4ca52a
1.分析功能
先看截图
列表.png 详细 评论.png1. 朋友圈列表
2. 朋友圈详细
3. 评论功能
2.数据库建立
这里列表与详细,我们用一个表来实现,评论用第二个表。总计2个表
post 表
我们可以直接这样导入一个JSON,但由于首页的资讯这样操作,导致数据都一模一样,这次我们使用云函数定时采集数据到数据库。
采集数据
数据结构地址:
var url = 'https://apiquan.ithome.com/api/post?categoryid=0&type=0&orderTime=1526981875455&visistCount=&pageLength='
如果手动导入可以导入此数据结构
[
{
"id":266716,
"t":"普通联通卡可以转米粉卡吗?",
"c":"[杂谈]",
"cn":"畅谈",
"uid":100058,
"un":"中国火箭军",
"rn":"诺基亚 Lumia 930",
"pt":"/Date(1527057744773)/",
"rt":"/Date(1527060538403)/",
"vc":0,
"rc":17,
"IC":false,
"IH":false,
"ot":"/Date(-62135596800000)/"
}
]
云函数获取网址数据代码
function onRequest(request, response, modules) {
var http = modules.oHttp;
var url = 'https://apiquan.ithome.com/api/post?categoryid=0&type=0&orderTime=1526981875455&visistCount=&pageLength='
http(url, function(error, res, body) {
response.end(body);
});
}
点击测试看结果
结果这样就可以拿到目标网址数据,如何插入到数据库,看下面代码
db.insert({
"table":"XXX", //表名
"data":{"a":"XXXX","b":"XXXX"} //需要更新的数据,格式为JSON
},function(err,data){ //回调函数
});
上面是插入单行数据,如果批量插入,可以使用下面代码
function onRequest(request, response, modules) {
var http = modules.oHttp;
var db = modules.oData;
var url = 'https://apiquan.ithome.com/api/post?categoryid=0&type=0&orderTime=1526981875455&visistCount=&pageLength='
http(url, function(error, res, body) {
//结果转为对象类型
var results =JSON.parse(body);
var arr = [];
//循环更新数据
for (var i in results) {
newdata = {
"method": "post",
"path": "/1/classes/post",
"body":results[i]
};
arr.push(newdata)
}
//获取数组对象
var bat = modules.oBatch;
//批量操作
bat.exec({
"data": {
"requests": arr
}
}, function (err, data) {
//回调函数
response.end(data);
return;
});
response.end(JSON.stringify(results.length));
});
}
//点击测试,效果下如图
效果
定时任务
当然你也可以设置个定时任务
我这里设置结果
0 0 16 * * * 表示每天的16时0分0秒,触发定时器一次
定时任务
当然你也可以设置每小时,每天,每分钟,每秒,每隔5分钟等等,规则可以自己定义,具体请看云函数文档
文档地址
这一节我们把朋友圈的数据表建立,并采集了相关数据,下一节我们修改mpvue小程序代码。