显示接口异常要去代码哪个部分地方解决问题啊,具体要怎么处理这个问题
服务器端代码出问题了,题注下载的压缩包中有数据库资源没有,我这里下载的这个没有数据库资源。调用的接口控制器为AddressBookController.java,源文件在elm\src\main\java\com\gao\elm\client\controller下,相关的实体类也在elm\src\main\java\com\gao\elm\client下
一点错误提示也没有,调用的是哪个接口知道么?
接口报错了,看tomcat 服务器日志,报错会提示具体问题以及出错的代码位置。
看一下后端返回的数据,如果数据有问题,找你的后端让他解决,如果数据没有问题,那就是你渲染的问题
显示500异常,很可能是后端HTTP(S)接口返回500错误。浏览器按F12,网络选项卡里面找到返回500的URL,然后查看后台该URL相应接口的日志,再定位问题并解决。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!最近学的小程序的云开发,刚刚处理好了云函数去调用外部接口获得数据并存库的功能,乘着记得,记录一下。
直接放结果代码,结构很简单,看的懂的直接看,看不懂的后面有代码解释:
//云函数主体js
const cloud = require('wx-server-sdk')
//引入request-promise用于做网络请求
var rp = require('request-promise');
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
let url ='https://interface.sina.cn/news/wap/fymap2020_data.d.json';
return await rp(url)
.then(function (res) {
//console.log('res',res)
var json = JSON.parse(res)
console.log('json.data',json.data)
const db = cloud.database()
db.collection('virus').doc("e050b1a6606fe63600717bbb3af7fbcc")
.update({
data:{
data:json.data
}
})
return res
})
.catch(function (err) {
return '失败'
});
}
云函数配置文件:config.json
{
"permissions": {
"openapi": [
]
},
"triggers":[
{
"name":"updateData",
"type":"timer",
"config":"0 0 9 * * * *"
}
]
}
下方是说明啦
说明:
接口:
我用的新浪的防疫地图接口新浪防疫数据json接口
数据库:
将上方的json文件下载下来后,导入到云数据库中,我们便直接拥有了这个json结构的数据库,以及初始数据。后面我们只要定时更新这些数据就行了。
( 记住下面的 _id,后面我们更新数据要使用的。)
更新:
更新分为爬取和存库
爬取:
函数开头我们声明我们的接口url
用request-promise库(rp)调用接口拿到数据(此时还是纯文档的),数据在res里。
用JSON.parse(res)将返回的数据(文本)转换为JSON数据集。
存库
因为代码少而且直接,我就直接按顺序解释代码了。
创建云数据库实例db
更新云数据库的virus集合
下的 _id为"e050b1a6606fe63600717bbb3af7fbcc"
的data项
至此,便是代码的解释。
将重新获取的json数据的data,update到数据库的data下,这一操作便完成了。
验证函数
我们可以用本地函数调用云函数,然后查看数据库数据是否有更新来确认云函数功能是否完善。
// pages/cloudFunctiontest/index.js
Page({
test(){
wx.cloud.callFunction({
name:'requestTest',
}).then((res)=>{
var p = JSON.parse(res.result)
console.log("p.data",p.data)
}).catch((res)=>{
console.log(res.result);
})
},
})
没有报错
数据库中的数据也更新了
4. 云函数定时调用
定时器说明可以查看微信小程序官方文档。
也可以直接看视频,简单明了
{
"permissions": {
"openapi": [
]
},
"triggers":[
{
"name":"updateData",
"type":"timer",
"config":"0 0 1 * * * *"
}
]
}
我这边定义的时间是,从右向左:
每年的
每星期的
每月的
每天的
1时
0分
0秒
调用函数
而今早的确定的时候确确实实按计划更新了(服务器有时间差不计)
微信官方的文档和视频都很详细,个人推荐多去啃一啃,此文只写一下个人的经验。