• uniapp(uncloud) 使用生态开发接口详情5(云公共模块)


    1.uniCloud官网 云对象中云公共模块: 网站:
    https://uniapp.dcloud.net.cn/uniCloud/cf-common.html

    // 官网介绍
    cloudfunctions
      ├─common // 云函数公用模块目录
      |  └─hello-common // 云函数公用模块
      |     ├─package.json
      |     └─index.js // 公用模块代码,可以不使用index.js,修改 package.json 内的 main 字段可以指定此文件名
      └─use-common // 使用公用模块的云函数
         ├─package.json // 在 use-common 目录执行 npm init -y 生成
         └─index.js // 云函数入口文件
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. 在 common 新建 demo 公共模块
    // demo => index.js
    function getMessage(str) {
    	let msg = {
    		"success": "查询成功",
    		"noSuccess": "查询失败",
    		"requried": "缺少参数"
    	}
    	return msg[str]
    }
    
    function getCode(code) {
    	let codeObj = {
    		200: 200, // "查询成功",
    		404: 404 // 找不到路径
    	}
    	return codeObj[code]
    }
    
    function usrReslut(code, msg, data, total) {
    	return {
    		errCode: getCode(code),
    		errMsg: getMessage(msg),
    		data: data,
    		total: total
    	}
    }
    module.exports = {
    	getMessage,
    	getCode,
    	usrReslut
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    1. 点击demo 目录, 上传公共模块
    2. 使用公共模块
      在这里插入图片描述
    const db = uniCloud.database()
    // 1. 引入
    const {
    	getMessage,
    	getCode,
    	usrReslut
    } = require("demo")
    
    module.exports = {
    	_before: function() { // 通用预处理器
    		const body = this.getHttpInfo().body
    		if (!body) {
    			throw new usrReslut(400, "requried")
    		}
    		this.params = JSON.parse(this.getHttpInfo().body)
    		this.startTime = Date.now()
    	},
    
    	async get() {
    		let {
    			num
    		} = this.params
    		if (num == null) throw new usrReslut(400, "requried")
    
    		const res = await db.collection("sy_product_nav").limit(num).get()
    		// let result = {
    		// 	errCode: getCode(0),
    		// 	errMsg: getMessage("noSuccess"),
    		// 	data: res.data
    		// }
    		// return result
    		// 使用之后,保存文件,再上传部署
    		return  usrReslut(200, "success", res.data, 0)
    	},
    
    	_after(error, result) {
    		if (error) {
    			throw error
    		}
    		result.timeCode = Date.now() - this.startTime
    
    		return result
    	}
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    1. 在postman中, 使用之前的接口请求, 结果返回ok, 最后是根据自己的需求制定接口
  • 相关阅读:
    Redis为什么这么快?高频面试题详解
    谈谈selenium4.0中的相对定位
    vscode远程调试python代码
    【ML·机器学习】S1P1统计学习
    uni-app--》基于小程序开发的电商平台项目实战(六)
    诡异的定时任务
    Linux 将 /home 目录与 / 根目录磁盘合并
    WordPress后台地址被改导致无法登陆后台的简单解决方法
    PgSQL-内核特性-TupleTableSlotOps
    人工智能基础 | 机器学习模型评估与选择(二)
  • 原文地址:https://blog.csdn.net/ybilss/article/details/133899240