uniapp加云开发
uniapp集成云开发基础配置
在manifest.json中启用uniCloud服务:
{
"uniCloud": {
"provider": "aliyun|tencent"
}
}
通过HBuilderX右键项目目录创建uniCloud环境,选择阿里云或腾讯云作为服务商。初始化后的项目结构会包含uniCloud目录,其中cloudfunctions存放云函数。
云函数创建与调用示例
新建云函数需右键cloudfunctions目录选择新建。示例云函数getData的入口文件index.js:
'use strict';
exports.main = async (event, context) => {
return {
data: 'Hello uniCloud'
}
}
客户端调用云函数:
uniCloud.callFunction({
name: 'getData',
success: (res) => {
console.log(res.result.data)
}
})
数据库操作实践
云函数中操作数据库示例:
const db = uniCloud.database()
exports.main = async (event) => {
const collection = db.collection('articles')
const res = await collection.limit(10).get()
return res
}
前端调用需注意权限控制,敏感操作应放在云函数中。通过db_init.json初始化数据库集合和索引。

文件存储管理
上传文件到云存储:
uniCloud.uploadFile({
filePath: tempFilePath,
cloudPath: 'user/avatar.jpg',
success: (res) => {
console.log(res.fileID)
}
})
下载文件需先获取文件URL:
uniCloud.getTempFileURL({
fileList: [fileID],
success: (res) => {
console.log(res.fileList[0].tempFileURL)
}
})
用户认证集成
使用uni-id进行用户管理:

const uniID = require('uni-id')
exports.main = async (event) => {
const { username, password } = event
const res = await uniID.login({
username,
password
})
return res
}
客户端登录后需保存返回的token:
uni.setStorageSync('uni_id_token', res.token)
云对象使用规范
创建云对象user在cloudfunctions/uni_modules/uni-id目录:
module.exports = {
getInfo() {
return {
status: 0,
info: {}
}
}
}
客户端调用云对象:
const user = uniCloud.importObject('user')
user.getInfo().then(res => {
console.log(res.info)
})
跨云服务商兼容方案
处理多服务商差异时,可通过环境变量判断:
const provider = process.env.UNI_CLOUD_PROVIDER
if(provider === 'aliyun') {
// 阿里云特有逻辑
} else {
// 腾讯云逻辑
}
对于前端API调用,uniCloud已封装统一接口,无需关注底层差异。数据库查询语法在不同服务商间保持一致性。






