uniCloud(一) 从零搭建:项目创建、服务空间配置与云对象初体验
1. 从零开始创建uniCloud项目
第一次接触uniCloud的开发者可能会觉得云开发很复杂,其实用HBuilderX工具创建项目非常简单。我刚开始用的时候也担心配置麻烦,实际操作下来发现比想象中容易得多。
打开HBuilderX,点击左上角"文件"→"新建"→"项目",选择"uni-app"项目类型。这里有个关键点要注意:在模板选择区域,务必勾选"启用uniCloud"选项。这个选项很容易被忽略,我第一次就漏掉了,结果后面还得重新配置。项目名称建议用英文,比如"myFirstUniCloud",避免中文可能导致的路径问题。
创建完成后,项目目录会多出一个"uniCloud"文件夹,这就是我们后续开发云函数和云对象的主战场。如果你没看到这个文件夹,别慌,我遇到过这种情况——有时候需要右键项目选择"关联uniCloud"才能显示出来。
2. 服务空间配置全流程详解
2.1 新建服务空间
服务空间相当于我们的云端服务器,所有云函数和数据库都会部署在这里。在HBuilderX中右键"uniCloud"文件夹,选择"关联云服务空间"。如果你和我第一次使用时一样没有现成的服务空间,就需要新建一个。
点击"新建服务空间",会弹出阿里云或腾讯云的配置界面(根据你选择的云服务商不同而不同)。这里有个实际经验分享:阿里云的服务空间初始化通常比腾讯云快一些,我在测试时阿里云大概2分钟就好,腾讯云有时要5分钟以上。服务空间名称建议包含项目名和日期,比如"myProject-202406",方便后期管理。
2.2 关联本地项目与服务空间
服务空间创建成功后,回到HBuilderX刷新界面,在"关联云服务空间"的弹窗中就能看到新建的空间了。选中它点击确定,项目根目录下会自动生成一个"uniCloud-aliyun"或"uniCloud-tcb"文件夹(取决于你选择的云服务商)。
这里有个小坑我踩过:关联成功后需要重启HBuilderX,否则有时会出现云函数列表不刷新的问题。重启后你会在编辑器底部看到"uniCloud"面板,这里可以管理所有云函数和查看调用日志。
3. 云对象开发实战
3.1 创建第一个云对象
云对象是uniCloud的特色功能,它把传统的RESTful API封装成了更易用的对象形式。右键"uniCloud"文件夹选择"新建云函数/云对象",类型选"云对象",命名为"calculator"。
系统会自动生成两个文件:
index.obj.js:云对象入口文件package.json:配置文件
打开index.obj.js,我们来写个简单的加法函数:
module.exports = { add(a, b) { // 参数校验 if(typeof a !== 'number' || typeof b !== 'number'){ throw new Error('参数必须是数字') } return a + b }, // 再加个乘法方法 multiply(a, b) { return a * b } }3.2 前端调用云对象
在前端页面调用云对象比传统ajax简单多了。在vue文件的<script setup>中:
// 导入云对象 const calculator = uniCloud.importObject('calculator') const calculate = async () => { try { const sum = await calculator.add(1, 2) const product = await calculator.multiply(3, 4) console.log('加法结果:', sum) // 3 console.log('乘法结果:', product) // 12 } catch (e) { console.error('计算出错:', e) } }在模板中添加一个按钮触发计算:
<button @click="calculate">开始计算</button>4. 部署与线上测试
4.1 上传云对象到服务空间
开发完成后,右键"calculator"云对象文件夹,选择"上传部署"。这个过程会把本地代码打包上传到之前关联的服务空间。上传成功后,可以在HBuilderX的"uniCloud"面板中看到云对象状态变为"运行中"。
这里有个实用技巧:上传前先右键选择"本地运行"测试,可以避免反复上传调试。我在实际项目中经常忘记这一步,结果小错误也要等上传后才能发现,很浪费时间。
4.2 解决跨域问题
第一次调用线上云对象时可能会遇到跨域错误。解决方法很简单:
- 打开uniCloud控制台
- 进入"跨域配置"页面
- 添加允许的域名或直接使用通配符"*"(开发环境建议用通配符,生产环境应该配置具体域名)
4.3 线上调用验证
部署完成后,前端代码不需要任何修改就能自动切换到调用线上云对象。你可以在浏览器控制台查看网络请求,会发现请求地址变成了你自己的云服务地址。
为了确保一切正常,我通常会这样做:
- 清空浏览器缓存
- 打开开发者工具的网络面板
- 点击计算按钮
- 检查请求是否成功和返回结果
如果遇到403错误,通常是权限问题。这时需要到uniCloud控制台的"云对象权限"页面,给对应云对象添加"所有用户可访问"权限。这个细节官方文档提得不多,但实际开发中经常遇到。