知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
微信小程序云開發(fā)云函數(shù)路由,擔(dān)心云函數(shù)不夠用的可以看下這里 ...
發(fā)表時(shí)間:2021-1-5
發(fā)布人:葵宇科技
瀏覽次數(shù):72
分為 controllers 控制器 service 服務(wù)邏輯 utils 工具類
二 修改入口文件根據(jù)不同路由進(jìn)入不同的文件
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
const response = require('./utils/response')
cloud.init()
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
//這個(gè)是重點(diǎn),小程序傳過來的時(shí)候要帶 controller 控制器和 action 函數(shù)名過來
if (!event.controller || !event.action) {
return response.error()
}
try {
//根據(jù)不同的控制器,引入不同的控制器文件
const server = require('./controllers/' + event.controller)
//調(diào)用控制器里面的方法
return server.getInstance({
router: event.controller + '/' + event.action,
event: event
})[event.action]()
} catch (e) {
return response.error('系統(tǒng)錯(cuò)誤')
}
}
重點(diǎn)是前端得傳 controller 和 action 過來,然后根據(jù)不同的控制器和函數(shù)名調(diào)用不同的文件
里面出現(xiàn)的response文件,我也先給大家看下,避免不知道是什么意思
這個(gè)返回信息的封裝 response.js
module.exports = {
success: function (msg = '成功', result = {}, status = 0) {
return {
msg: msg,
result: result,
status: status
}
},
error:function (msg = '失敗', result = {}, status = -1) {
return {
msg: msg,
result: result,
status: status
}
}
}
三 首先創(chuàng)建一個(gè)基礎(chǔ)控制器
以后一些掛載函數(shù)可以在里頭掛載
登錄的控制器 Base.js
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
const response = require('../utils/response');
class Base {
//構(gòu)造函數(shù)方法
constructor(option={}) {
this.response = response
this.request = option.event
this.router = option.router
}
static getInstance(option={}) {
if (!this.instance) {
this.instance = new this(option);
}
return this.instance;
}
}
module.exports = Base;
四 可以開始寫控制器方法了
比如寫個(gè)獲取商品列表的控制器Goods.js
const Base = require('./Base')
class Goods extends Base {
//構(gòu)造函數(shù)方法
constructor(option={}) {
super(option);
}
async list() {
//商品列表
let list = [];
return this.response.success('成功',{list:list });
}
async add() {
//添加商品
return this.response.success('成功');
}
}
module.exports = Goods;
這樣一個(gè)獲取商品列表的鏈接就做好了,如果要寫多其他的功能,就在controller里建js控制器,然后繼承base,就可以了
五 小程序端的請(qǐng)求
我用的是Uniapp開發(fā)
目錄結(jié)構(gòu)如下
首先我封裝一個(gè)請(qǐng)求工具
request.js
export async function request(url, data = http://www.wxapp-union.com/{}) {
const url_list = url.split('/')
data.controller = url_list[0]
data.action = url_list[1]
return new Promise((r, s) => {
wx.cloud.callFunction({
// 云函數(shù)名稱
name: 'request',
// 傳給云函數(shù)的參數(shù)
data: data,
success: function(res) {
let res_data = http://www.wxapp-union.com/res.result
r(res_data);
},
fail: function(res) {
s(res);
}
})
})
}
然后把所有要請(qǐng)求的接口寫在api.js文件里
import {request} from "./request";
//商品列表
export function goodsList(data){
return request('Goods/list',data);
}
//添加商品
export function goodsList(data){
return request('Goods/add',data);
}
然后就可以調(diào)用了
import {goodsList} from "@/api/api.js";
//就可以拿到商品列表了
let list = await goodsList();
封裝好后,小程序的請(qǐng)求,大家有沒有覺得開發(fā)跟以前跟后端對(duì)接的形式一樣
相關(guān)案例查看更多
相關(guān)閱讀
- 云南網(wǎng)站建設(shè)開發(fā)
- APP
- 網(wǎng)站建設(shè)首選
- python開發(fā)小程序
- 專業(yè)網(wǎng)站建設(shè)公司
- 云南網(wǎng)站建設(shè)百度
- 云南網(wǎng)站開發(fā)
- 北京小程序制作
- 云南小程序開發(fā)制作公司
- 云南小程序開發(fā)首選品牌
- 網(wǎng)站制作
- 云南網(wǎng)站建設(shè)選
- 網(wǎng)站建設(shè)首頁
- 前端開發(fā)
- 云南網(wǎng)站建設(shè)哪家公司好
- 開發(fā)框架
- 汽車報(bào)廢管理系統(tǒng)
- 云南軟件定制
- 退款
- 云南網(wǎng)站建設(shè)哪家強(qiáng)
- 云南小程序開發(fā)公司
- 云南網(wǎng)絡(luò)推廣
- 開通微信小程序被騙
- web開發(fā)技術(shù)
- 百度小程序公司
- 云南網(wǎng)絡(luò)營銷顧問
- 網(wǎng)站建設(shè)高手
- 報(bào)廢車回收
- 微分銷
- 昆明網(wǎng)站開發(fā)