前提是已经购买了腾讯云的服务,并建立好了云开发环境,有环境ID
一、先在云数据库新建一个集合数据
在你的云开发环境里的 “云数据库” 里新建一个集合,比如叫 users ,并录入1个数据,比如
{ "name": "tom", "age": "18", "sex": "male" }
二,本地安装Cloudbase CLI工具
详细步骤可以参见官方文档:https://docs.cloudbase.net/cli-v1/install
npm i -g @cloudbase/cli
安装完毕之后检查一下是否安装成功
tcb -v
成功安装后必须要登录您的腾讯云账号
tcb login
三、建立云函数
详细步骤参见官方文档:https://cloud.tencent.com/document/product/876/41762
1、先在本机建立云函数代码,例如:
新建一个 my-cloudbase-service 文件夹,在此目录下再新建一个 “functions”文件夹,和一个“cloudbaserc.json”文件。在 functions目录 下创建 “getUser” 文件夹,包含 index.js 与 package.json 两个文件。
cloudbaserc.json 文件内容样例如下:
{
"envId": "your-env-id"
}
index.js 文件内容样例如下:
const cloudbase = require('@cloudbase/node-sdk')
const app = cloudbase.init({
env: 'your环境ID',
})
const db = app.database()
exports.main = async (event, context) => {
// event 里面是客户端httpRequest请求的内容,包含headers请求头,body请求体的请求数据等。
const res = await db.collection('users').get()
// get是从数据库取数据,插入数据是add
return {
data: res.data,
status: '0',
desc: '成功'
}
}
※如果需要往数据库插入记录,就再写一个 addUser 的云函数,index.js里面写入:
const cloudbase = require('@cloudbase/node-sdk')
const app = cloudbase.init({
env: 'your环境ID',
})
const db = app.database()
exports.main = async (event, context) => {
const _data = JSON.parse(event.body) || null
if (_data) {
const res = await db.collection('users').where({name: _data.name}).get()
if (res.data) {
return {
status: '1',
desc: '数据已存在'
}
} else {
const response = await db.collection('users').add(_data)
return {
data: response,
status: '0',
desc: '成功'
}
}
} else {
return {
status: '1',
desc: '没有数据'
}
}
}
相应的 package.json 文件内容样例如下:
{
"name": "getUser",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {},
"author": "",
"license": "ISC",
"dependencies": {
"@cloudbase/node-sdk": "latest"
}
}
2、把本地写好的云函数发布到云服务器上,使用CLI命令
cloudbase functions:deploy getUser
3、为此函数创建一个HTTP访问的路由,使用CLI命令
cloudbase service:create -p /getUser -f getUser
4、访问此函数地址测试结果
可以在云控制台里的访问管理下的HTTP访问服务里看到接口地址例如:
可以直接在浏览器内打开 https://${env}.ap-shanghai.app.tcloudbase.com/getUser
四、云函数相关问题
1、如何调用已建好的云函数?
参见官方文档:https://cloud.tencent.com/document/product/876/41776
直接在页面里使用ajax请求即可,接口地址就是在云开发控制台里获取到的地址。
2、报CORS跨域错误怎么办?
进入云控制台里的访问管理里的HTTP访问服务,里面有个安全域名,设置你要的域名即可,需要一点时间才能生效。
3、调用云函数时控制台报错找不到node-sdk对象怎么办?
进入云控制台的云函数,点击一下你的函数名字,再点击里面的函数代码,在线编辑下方有一个保存并安装依赖的按钮,点击一下让它安装node依赖,提示成功后即可,如果提示缺少package.json文件,你就直接在线编辑里新建一个,复制代码填入即可。
4、如何快速启动一个本地服务?
使用 “npx serve” 命令,其他详细配置可参阅:https://segmentfault.com/a/1190000045107585
npx serve