想要在使用uniCloud的使用拦截请求怎么办 再次封装uniCloud.callFunction 特别说明 这里的token是我自己存储成token 如果你使用了uni-id 官方的推荐是 ('uni_id_token') ('uni_id_token_expired') 存储了uni_id_token后请求会自动携带 这里的res.result.code==0是因为我的云函数请求成功返回的code均为0 如果你的不是 就根据自己需求更改
正常情况下 我们使用uniCloud.callFunction
uniCloud.callFunction({
name: 'xxx'
})
结合uni-id后请求时需要携带token 或者需要携带一些认证参数怎么办呢 总不能一个一个的写吧 那太麻烦了
我们对他进行一次封装
根目录下新建一个目录 根据需求命名 新建index.js文件
@TOC
通用请求
当请求为0(根据需求调整)的时候请求成功 否则只返回相应的code(也可以返回msg等)
封装
const req = (funName,params)=>{
const token = uni.getStorageSync('xxxx')
if(!token){
//没有token 跳转登陆
}
return new Promise((resolve)=>{
uniCloud.callFunction({
name:funName,
data:{
params
},
success:res=>{
if(res.result.code==0){
resolve(res.result)
}else{
resolve(res.result.code)
}
},
fail:()=>{
resolve(false)
}
})
})
}
module.exports = {
req
}
调用
在main.js中
import Vue from 'vue'
import App from './App'
import reqFun from './reqFun/index.js'
Vue.prototype.$reqFun = reqFun
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
在需要调用的地方
test() {
this.$reqFun.req(funName, params).then(res => {
})
}
登陆注册
const loginOrRegister = (params)=>{
return new Promise((resolve)=>{
uniCloud.callFunction({
name:'login/register',
data:{
params
},
success:res=>{
if(res.result.code==0){
resolve(res.result)
}else{
resolve(res.result.code)
}
},
fail:()=>{
resolve(false)
}
})
})
}
整个文件
const req = (funName,params)=>{
const token = uni.getStorageSync('xxxx')
if(!token){
//没有token 跳转登陆
}
return new Promise((resolve)=>{
uniCloud.callFunction({
name:funName,
data:{
params
},
success:res=>{
if(res.result.code==0){
resolve(res.result)
}else{
resolve(res.result.code)
}
},
fail:()=>{
resolve(false)
}
})
})
}
const loginOrRegister = (params)=>{
return new Promise((resolve)=>{
uniCloud.callFunction({
name:'login/register',
data:{
params
},
success:res=>{
if(res.result.code==0){
resolve(res.result)
}else{
resolve(res.result.code)
}
},
fail:()=>{
resolve(false)
}
})
})
}
module.exports = {
req,
loginOrRegister
}
调用方法和通用调用一样
欢迎加入交流群 974178910 535620886
大家好,我是代码哈士奇,是一名软件学院网络工程的学生,因为我是“狗”,狗走千里吃肉。想把大学期间学的东西和大家分享,和大家一起进步。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!博客主页:https://blog.csdn.net/qq_42027681。
未经本人允许,禁止转载