ååç«¯æ°æ®å¤çä»ç»
åè¨â
æ¬ç¯æç« å°è®²è§£äºå¼åå¹³å°ä¸ å¯è§åå¼åï¼å¾®æï¼ çè¿é¶å å®¹ï¼æ¨å¨å¸®å©æ¨æ´å ¨é¢å°ææ¡å ¶æ ¸å¿è½åã妿æ¨å¯¹ å¯è§åå¼åï¼å¾®æï¼ è¿ä¸å¤ªçæï¼å»ºè®®å é 读 å¿«éå ¥é¨ ä»¥å¤¯å®åºç¡
æ¬ç« æä»¬å°ä¸»è¦éå¯¹æ°æ®ç使ç¨è¿è¡è®²è§£ï¼å æ¬å¦ä¸ç¤ºä¾ï¼
-
å端å¦ä½å¯¹æ¥æ°æ®
- éè¿ æ°æ®è¡¨æ ¼ æ æ°æ®å表 ç
æ°æ®å®¹å¨ç»ä»¶å±ç¤ºæ°æ® - å°
æ°æ®æ¨¡åç»å®å°å¸¸è§ç»ä»¶ä¸è¿è¡å±ç¤º
- éè¿ æ°æ®è¡¨æ ¼ æ æ°æ®å表 ç
-
å端å¦ä½å¯¹æ¥æ°æ®
- éè¿ èªå®ä¹ä»£ç å¤çæ°æ®æ¨¡åä¸çæ°æ®
- éè¿ äºå½æ° è·åå¤é¨æ¥å£æ°æ®
æ°æ®æºâ
äºå¼åä¸çæ°æ®å¯ä»¥æºäº æ°æ®æ¨¡å ï¼ä¹å¯ä»¥æºäº å¤é¨æ°æ®æº
-
å¦ææ²¡æ åéæ°æ® (å·²ç»åå¨äºå ¶ä»æ°æ®åºçæ°æ®)ï¼æ¨èæ¨ä½¿ç¨äºå¼åä¸ç
æ°æ®æ¨¡åè¿è¡ç®¡çæ°æ® -
妿æåéç æ¬å°æ°æ®ï¼ä¾å¦excelè¿ç§æ¬å°æä»¶ï¼ä¹æ¨èæ¨ä½¿ç¨
æ°æ®æ¨¡åè¿è¡ç®¡çæ°æ®ï¼å°æ¬å°æä»¶å¯¼å ¥å°æ°æ®æ¨¡åä¸ -
妿æ¯èªæçæ°æ®åºï¼å¯ä»¥éè¿ æ°æ®è¿æ¥å¨ è¿è¡è¿æ¥
-
妿æ¯ç¬¬ä¸æ¹åºç¨ç æ°æ®æ¥å ¥ï¼å¯ä»¥éè¿APIæ¥å ¥çæ¹å¼è¿è¡è¿æ¥
- APIs/èªå®ä¹ä»£ç (æå¼ææ¡£)
- äºå½æ°(æå¼ææ¡£)
- APIs/HTTP API
æ°æ®æ¨¡åâ
é¦å æä»¬æ¥äºè§£å®ä¹æ°æ®æ¨¡åçå ç§æ¹å¼
å¨ äºå¼å/æ°æ®åº ä¸å®ä¹æ°æ®æ¨¡åï¼ç¸å ³é¾æ¥ æ°å»ºæ°æ®æ¨¡å

å¤é¨æ°æ®æºâ
- 妿å¤é¨æ°æ®æºæ¯ä»¥æ°æ®åºç´è¿çæ°æ®æ¹å¼æä¾çè¯ï¼å¯ä»¥éè¿
æ°æ®è¿æ¥å¨å°å¤é¨æ°æ®åºè¿æ¥å°æ°æ®æ¨¡åä¸ï¼ä»èç¨æ°æ®æ¨¡åå»ä»£çæ°æ®åºæä½

- 妿å¤é¨æ°æ®æºä»¥
HTTP APIç形弿ä¾çè¯ï¼å¯ä»¥éè¿APIs|äºå½æ°çæ¹å¼è·åæ°æ®
å ¶ä¸ APIs å å«HTTP请æ±åèªå®ä¹ä»£ç ä¸¤ç§æ¹å¼è·åå¤é¨æ°æ®

é è¿ä¸è¿°æ¹å¼ï¼ä½ åºè¯¥å¯ä»¥ææ°æ®æ¥å ¥äºå¼åä¸ï¼æ¥ä¸æ¥æä»¬è®²è§£å¦ä½å°æ°æ®å¯¹æ¥å°å端
åç«¯å¯¹æ¥æ°æ®â
å½é ç½®å¥½äºæ°æ®æºåï¼æ¥ä¸æ¥éè¦ææ°æ®å±ç¤ºå°å端
æ ¹æ®æ¶æå¾æä»¬å¯ä»¥çå°ï¼å端è·åæ°æ®çæ¹å¼æå¦ä¸å ç§ï¼
-
æ°æ®é ç½®
- éè¿é
ç½®æ°æ®æºåæ°å°æ°æ®ç´æ¥ç»å®å°
æ°æ®å®¹å¨ç»ä»¶ä¸è¿è¡å±ç¤º
- éè¿é
ç½®æ°æ®æºåæ°å°æ°æ®ç´æ¥ç»å®å°
-
$w è°ç¨ï¼ç¸å ³ææ¡£ï¼
- è¥æ°æ®åæ¾å¨
å ¨å±åéï¼ç³»ç»åéçä½ç½®ï¼åå¯ä»¥éè¿ $w è·åå° - è¥æ°æ®ä¸º
äºå½æ°è·åçè¯ï¼åå¯ä»¥éè¿ $w.cloud.xxx è°ç¨
- è¥æ°æ®åæ¾å¨
æä»¬ä¼å
éæ©éè¿ æ°æ®å®¹å¨ç»ä»¶ è¿è¡å±ç¤ºæ°æ®ï¼å½ä¸è½ææ°æ®æ¨¡åçæ°æ®ç´æ¥ç»å®å° æ°æ®å®¹å¨ç»ä»¶ æ¶ï¼æä»¬æèèå°æ°æ®åè³å°å
¨å±åéä¸ï¼åéè¿ $w è·å
æ°æ®é ç½®â
æ°æ®å®¹å¨é ç½®æ°æ®æºâ
å¦æåºæ¯æ¯æ°æ®ç®¡çç±»åºæ¯ï¼é£ä¹ä½ 大æ¦çéè¦ å表 å±ç¤ºæ°æ®ï¼ 表å å卿°æ®
æä»¬æ¨èä½¿ç¨ æ°æ®è¡¨æ ¼ æ æ°æ®å表 ç æ°æ®å®¹å¨ç»ä»¶ æ¥å¿«éå±ç¤ºæ°æ®ï¼éæ©æ°æ®æ¨¡åå³å¯å°æ°æ®æºç»å®å°ç»ä»¶ä¸
å¦å¾æä»¬å¯ä»¥å¨ æ°æ®å®¹å¨ç»ä»¶ ä¸å¿«éé
ç½®æ°æ®æº

æ®éç»ä»¶é ç½®æ°æ®æºâ
妿ææå±ç¤ºçç»ä»¶ä¸æ¯ æ°æ®å®¹å¨ç»ä»¶ ï¼èæ¯å
¶ä»ç常è§ç»ä»¶ï¼åä¸è½éè¿å¿«æ·æ°æ®æºç»å®æ¹å¼ï¼å¯ä»¥æç
§ä¸æ¹æ¥éª¤æ§è¡
- å
¨å±æ°å»ºä¸ä¸ª
å ç½®æ°æ®è¡¨æ¥è¯¢

- å¨ç»ä»¶ä¸éè¿ $w è·åæ°æ®ç»å®å°å±æ§ä¸

该demo详æ å¯ä»¥åè å ·ä½å®æ
ææç表达å¼ä¸è½ç´æ¥å¡«å ¥å±æ§ä¸ï¼éè¦åæ¢æè¡¨è¾¾å¼æå¯ä»¥å¡«å ¥è¡¨è¾¾å¼ï¼å¦åä¼ä»¥åç¬¦ä¸²æ ¼å¼æ¾ç¤ºï¼æ æ³è·åå°æ°æ®
å¤é¨æ°æ®æºâ
妿æä»¬ææå¨é¡µé¢ä¸å±ç¤ºå¤é¨æ°æ®ï¼é£ä¹é¦å è¿äºæ°æ®ä¼éè¿äºå½æ°ãHTTP APIãæ°æ®è¿æ¥å¨çæ¹å¼è·å
æ°æ®è¿æ¥å¨çåºæ¯æä»¬å¯ä»¥æé¤ï¼å®ä¼ä»¥æ°æ®æ¨¡åçæ¹å¼æä¾æ°æ®
å¦ææ¯ HTTP æ äºå½æ° çæ¹å¼ä»åå°è·åæ°æ®çè¯ï¼å¨å端æä»¬å¯ä»¥éè¿ $w çæ¹æ³è¿è¡è°ç¨
å¦ä¸æ¯éè¿ $w è°ç¨ äºå½æ° ç示ä¾
- 页é¢ä¸æ°å»ºä¸ä¸ª äºå½æ°æ¥è¯¢

- é»è®¤æä¾äºå¦ä¸æ¡ä¾ä»£ç
async ({
params
}) => {
// query è§¦åæ¶ä¼ å
¥çåæ°
console.log("params", params);
const result = await $w.cloud.callFunction({
name: "test", // TCB äºå½æ°åç§°
data: params, // äºå½æ°æ¥æ¶çåæ°ï¼æ ¹æ®èªå·±å建çäºå½æ°å
¥åèå®
});
// äºå½æ°æ§è¡ç»æ
return result;
}
ä¸è¿°ä¾åä¸éè¿ $w.cloud.callFunction æ¹æ³è°ç¨äºäºå½æ° test ï¼å¹¶ä¼ å
¥äºåæ° params ï¼ data 为 $w.cloud.callFunction æ¹æ³çè¿åå¼
åç»å¨éè¦è·åæ°æ®çä½ç½®éè¿å¦ä¸è¡¨è¾¾å¼è¿è¡è·åæ°æ®
$w.query1.data
æ°æ®å¤çâ
ç°å¨ä½ å¯ä»¥éè¿å¾å¤ç§æ¹å¼è·åå°æ°æ®å°åç«¯ï¼æ¥ä¸æ¥ä½ å¯è½éè¦å°æ°æ®ç»å®å°æä¸ªç»ä»¶ä¸ï¼æè éè¦å¯¹æ°æ®åä¸äºå¤ç
æ¥ä¸æ¥é®é¢è¡åæäºå¦ä½å°æ°æ®å¤çæä½ (ç»ä»¶)æéè¦çæ ¼å¼
æ¤æ¶ä½ å¯ä»¥ç´æ¥å¨ JS æ¹æ³ä¸å ¨é¨å¤ç宿ï¼ä¹å¯ä»¥éè¿ äºä»¶æµ çæ¹å¼è¿è¡åæ¥å¤ç
䏿¹æä»¬ä¸¾ä¸ªç¤ºä¾ï¼
å设ç°å¨æä»¬ææå°åå° blogåç±»å表 æ°æ®æ¥åºæ¥ï¼å¹¶ç»å®å° tabç»ä»¶ ä¸ï¼ä¼éå°çé®é¢æ¯ï¼
åå°æ¥åºæ¥çæ°æ®ä¸ºæ°æ®åºçåæ®µæ ¼å¼ï¼æä»¬éè¦å°å
¶å¤çæ tabç»ä»¶ æéçæ ¼å¼
1. JSè§£å³æ¹å¼ï¼
-
éè¿
$w.cloud.callDataSourceæ¹æ³è·åæ°æ® -
éè¿ map æ¹æ³å°æ°æ®è½¬æ
{label: 'åç±»åç§°', value: 'åç±»id'}çæ ¼å¼ -
è¿åæ°æ ¼å¼æ°æ®
export default function({
event,
data
}) {
const data = await $w.cloud.callDataSource({
dataSourceName: "blog", // æ°æ®æºåç§°
methodName: "wedaGetRecordsV2", // æ°æ®æºæ¹æ³
params: {
// è¿ååæ®µéæ©
select: {
$master: true, // è¿åä¸»è¡¨åæ®µ
},
getCount: true, // è¿åtotalåæ®µ
},
});
const tabList = data.records.map((item) => ({
label: item.name,
value: item._id
}))
return tabList;
}
å¦æä½ å¯¹ JS æ¹æ³ä¸çæï¼å¯ä»¥éæ¶å AI æé®è·å帮å©
2. äºä»¶æµè§£å³æ¹å¼ï¼
-
æ°å»ºèªå®ä¹åé
blogCategoryList -
æ°å»ºäºä»¶æµï¼ç¬¬ä¸æ¥é ç½®
è°ç¨æ°æ®æºæ¹æ³ç¨æ¥è·åæ°æ® -
ç¬¬äºæ¥é ç½®jsæ¹æ³ï¼å°ä¸ä¸æ¥æ¥è¯¢çæ°æ®è½¬æ¢æ
{label: 'åç±»åç§°', value: 'åç±»id'}çæ ¼å¼ï¼å¹¶å°è½¬æ¢åçæ°æ®èµå¼ç»èªå®ä¹åéblogCategoryList -
å¨åéçæ¶æºè°ç¨äºä»¶æµï¼ä¾å¦ 页é¢åå§åæ¶è°ç¨

以ä¸ä¸¤ç§æ¹æ³åºå«å¦ä¸ï¼
JSæ¹æ³
ä¼ç¹ï¼è¿åå¼å°±æ¯æ°æ®ï¼å æ¤å¯ä»¥ç´æ¥ç»å®å°ç»ä»¶ä¸ï¼ç»å®å³æ§è¡è¯¥æ¹æ³ï¼æ¹ä¾¿å¿«æ·
缺ç¹ï¼ æ°æ®æ²¡æç¼åï¼æ¯æ¬¡æ§è¡é½ä¼éæ°æ¥è¯¢ï¼ä¸è½å¤ç¨ï¼éè¦å ¨ç¼ç
äºä»¶æµ
ä¼ç¹ï¼éè¿é ç½®æ¥å®ç°é¾è·¯ï¼æ°æ®ä¼ç¼åå°åéä¸ï¼å¯ä»¥å¤ç¨
缺ç¹ï¼é ç½®æ¥éª¤ç¸å¯¹å¤ä¸äºï¼éè¦æå¨è°ç¨æ§è¡
åç«¯å¯¹æ¥æ°æ®â
åç«¯å¯¹æ¥æ°æ®çç®çæ¯ä¸ºäºæè·åæ°æ®å¤çæ°æ®çè¡ä¸ºæ¾å¨åå°æ§è¡ï¼åå°æ§è¡æ²¡æè·¨åãå¹¶åçé®é¢ï¼æçåæ§è½é½æ¯å¨å端å¤çæ°æ®é«å¾å¤
å æ¤å¨éè¦åæ¶è¯·æ±å¤ä¸ªæ¥å£è·åæ°æ®ï¼å¹¶éè¦å¤çæ°æ®æ¶ï¼æ¨è使ç¨åç«¯å¯¹æ¥æ°æ®
å 为æ¯å¨å端æ§è¡çèæ¬ï¼æä»¥å¹¶æ²¡æ $w å
¨å±åéï¼å æ¤å¨è°ç¨é¾ä¸è¯æ³ä¼æäºå·®å¼ï¼å
·ä½å¦ä¸:
èªå®ä¹ä»£ç â
å¨ APIs ä¸ï¼å¯ä»¥éè¿ èªå®ä¹ä»£ç çæ¹å¼è°ç¨æ°æ®æ¨¡å
context å ¥åä¸å å«äºä¸äºä¸ä¸æä¿¡æ¯ï¼è¿æäºå¼åç¯å¢çè°ç¨æ¹æ³
详ç»ä»ç»åè èªå®ä¹ä»£ç
䏿¹ä¸¾ä¾è¯´æå¦ä½éè¿èªå®ä¹ä»£ç è°ç¨æ°æ®æ¨¡å
// params 为å
¥åï¼context å
å«ä¸ä¸æä¿¡æ¯ç
module.exports = async function(params, context) {
const data = await context.callModel({
dataSourceName: "blog", // æ°æ®æºåç§°
methodName: "wedaGetRecordsV2", // æ°æ®æºæ¹æ³
params: {
// è¿ååæ®µéæ©
select: {
$master: true, // è¿åä¸»è¡¨åæ®µ
},
getCount: true, // è¿åtotalåæ®µ
},
})
// use data doing sth...
}
ä¿®æ¹éæ¬äººæ°æ®
è¥ææä¿®æ¹éæ¬äººæ°æ®ï¼å¯ä»¥å¨ callModel 䏿·»å å¦ä¸åæ°
fetchOption: {
useAdmin: true
}
代ç 示ä¾ï¼
module.exports = async function(params, context) {
const data = await context.callModel({
dataSourceName: "blog", // æ°æ®æºåç§°
methodName: "wedaUpdateV2", // æ°æ®æºæ¹æ³
fetchOption: {
useAdmin: true
},
params: {
data: {
name: "test"
},
filter: {
where: {
$and: [{
_id: {
$eq: "xxx"
}
}]
}
},
}
})
// use data doing sth...
}
äºå½æ°â
äºå½æ°æ¯è¿è¡å¨åå°ç彿°ï¼å¹¶ä¸å¯ä»¥å°è£ æ HTTP å½¢å¼ç»å¤é¨æä¾æ¥å£è°ç¨
å¨ äºå½æ° ä¸ï¼å¯ä»¥éè¿ SDK è°ç¨æ°æ®æ¨¡åï¼è¯¦ç»ä»ç»åè SDKåå§å
䏿¹ä¸¾ä¾è¯´æå¦ä½éè¿äºå½æ°è°ç¨æ°æ®æ¨¡å
const cloudbase = require("@cloudbase/node-sdk");
// æå®äºå¼åç¯å¢ ID
const app = cloudbase.init({
env: "some-env-id",
});
exports.main = async (event, context) => {
const models = app.models;
const res = await models.blog.list({
// è¿ååæ®µéæ©
select: {
$master: true, // è¿åä¸»è¡¨åæ®µ
},
getCount: true, // è¿åtotalåæ®µ
})
// use res doing sth...
};
䏿¹ä¸¾ä¾è¯´æå¦ä½éè¿èªå®ä¹ä»£ç è°ç¨å¤é¨API
è¿éæä»¬éæ©ç¨fetch è°ç¨å¤é¨API
const fetch = require("node-fetch");
exports.main = async (event, context) => {
const res = await fetch("https://api.example.com/data");
const data = res.json();
// use data doing sth...
}
å·®å¼å¯¹æ¯â
èªå®ä¹ä»£ç å äºå½æ° çå·®å¼å¦ä¸ï¼
èªå®ä¹ä»£ç
èªå®ä¹ä»£ç å¯ä»¥è®¤ä¸ºæ¯åæä»¶JS代ç ï¼é¨ç½²å¨äºç«¯è¿è¡
ä¼ç¹ï¼å¤çæ°æ®æ¨¡åç¸å ³é»è¾æ¯è¾æ¹ä¾¿ï¼æ éåå¸é¨ç½²
缺ç¹ï¼ä¸æ¯æå¼å ¥ç¬¬ä¸æ¹SDKï¼åªè½åJS
äºå½æ°
äºå½æ°å¯ä»¥è®¤ä¸ºæ¯ä¸ä¸ªå®æ´çåå°æå¡ï¼é¨ç½²å¨äºç«¯è¿è¡
ä¼ç¹ï¼åå°æå¡ï¼æ¯æå¤è¯è¨ï¼æ¯æå¼å ¥ç¬¬ä¸æ¹SDK
缺ç¹ï¼éè¦åå¸é¨ç½²
å æ¤å¨å¤çæ°æ®æ¨¡åç¸å ³è½»éé»è¾æ¶ï¼æ¨è ä½¿ç¨ èªå®ä¹ä»£ç èªå®ä¹ä»£ç è¿è¡å®ç°ï¼å ¶ä½å¤æåºæ¯æ¨è äºå½æ°
è°è¯ãæ¥éæéâ
注æç¹ï¼
-
æ°å»ºæ°æ®æ¨¡ååé»è®¤ä¼æãä» å建è å管çåå¯è¯»åãæéï¼å æ¤æ°æ®çä¸è§æ¶å¯è½æ¯æéé®é¢ï¼è¯·æ£æ¥æ°æ®æ¨¡åæéæ¯å¦æ£ç¡®
-
éå°å¦ä¸ç±»ä¼¼å¼¹çªæ¥éæ¶ï¼ä¸è¬ä¼æç¤ºæ¥éåå ï¼è¥æ¥éåå æ²¡æçæç½ï¼å¯ä»¥æ ¹æ®è§¦åäºä»¶çæ¥éé¾è·¯è¿è¡ä¸æ¥æ¥ææ¥
å¦å¾æ¥éæ¯ç±ç¹å»button1ç»ä»¶æ¶æç¤ºçï¼æç¤ºæ¯ç»ä»¶button1çäºä»¶ååºå¤±è´¥ï¼å æ¤æä»¬éè¦ææ¥ç»ä»¶button1çç¹å»äºä»¶é¾è·¯ï¼æ£æ¥æ¯ä¸æ¯æè¯æ³æ¥é
- è¥éå°å¦ä¸æ¥éï¼å¯ä»¥æ¥çå°æ¥éåå 为ç»ä»¶ sideTab2.selectedValue 屿§ç»å®è¯æ³é误ï¼å æ¤å»æ£æ¥è¯¥ç»ä»¶ç屿§ç»å®å³å¯
