±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ²®ÀÖÔÚÏß,±¾ÎÄͨ¹ý½éÉÜʲôÊÇС³ÌÐò¡¤ÔÆ¿ª·¢ÒÔ¼°ÈçºÎʹÓÃÔÆº¯Êý£¬Ú¹ÊÍÁËС³ÌÐò¿ª·¢µÄÐÂʱ´ú¡£ |
|
ʲôÊÇС³ÌÐò¡¤ÔÆ¿ª·¢
С³ÌÐò¡¤ÔÆ¿ª·¢ÊÇ΢ÐÅÍŶӺÍÌÚÑ¶ÔÆÍŶӹ²Í¬Ñз¢µÄÒ»Ì×С³ÌÐò»ù´¡ÄÜÁ¦£¬¼òÑÔÖ®¾ÍÊÇ£ºÔÆÄÜÁ¦½«»á³ÉΪС³ÌÐòµÄ»ù´¡ÄÜÁ¦¡£ÕûÌ×¹¦ÄÜÊÇ»ùÓÚÌÚÑ¶ÔÆÈ«ÐÂÍÆ³öµÄÔÆ¿ª·¢(Tencent
Cloud Base)ËùÑз¢³öÀ´µÄÒ»Ì×Í걸µÄС³ÌÐòºǫ́¿ª·¢·½°¸¡£
С³ÌÐò¡¤ÔÆ¿ª·¢Îª¿ª·¢ÕßÌṩÍêÕûµÄÔÆ¶ËÁ÷³Ì£¬¼ò»¯ºó¶Ë¿ª·¢ºÍÔËά¸ÅÄÎÞÐè´î½¨·þÎñÆ÷£¬Ê¹ÓÃÆ½Ì¨ÌṩµÄ
API ½øÐкËÐÄÒµÎñ¿ª·¢£¬¼´¿ÉʵÏÖ¿ìËÙÉÏÏߺ͵ü´ú¡£
¸Ã½â¾ö·½°¸Ä¿Ç°ÌṩÈý´ó»ù´¡ÄÜÁ¦Ö§³Ö£º
´æ´¢£ºÔÚС³ÌÐòǰ¶ËÖ±½ÓÉÏ´«/ÏÂÔØÔÆ¶ËÎļþ£¬ÔÚС³ÌÐòÔÆ¿ØÖÆÌ¨¿ÉÊÓ»¯¹ÜÀí
Êý¾Ý¿â£ºÒ»¸ö¼È¿ÉÔÚС³ÌÐòǰ¶Ë²Ù×÷£¬Ò²ÄÜÔÚÔÆº¯ÊýÖжÁдµÄÎĵµÐÍÊý¾Ý¿â
ÔÆº¯Êý£ºÔÚÔÆ¶ËÔËÐеĴúÂ룬΢ÐÅ˽ÓÐÐÒéÌìÈ»¼øÈ¨£¬¿ª·¢ÕßÖ»Ðè±àдҵÎñÂß¼´úÂë
δÀ´£¬ÎÒÃÇ»¹»á¼¯³É¸ü¶àµÄ·þÎñÄÜÁ¦£¬ÎªÐ¡³ÌÐòÌṩ¸üÇ¿ÓÐÁ¦µÄÔÆ¶ËÖ§³Ö¡£
ÈçºÎʹÓÃС³ÌÐò¡¤ÔÆ¿ª·¢

ÉÏÃæ¾ÍÊÇС³ÌÐò¡¤ÔÆ¿ª·¢¼òµ¥µÄʹÓÃͼÆ×£ºÔÚС³ÌÐò¶Ë£¬Ö±½ÓÓùٷ½ÌṩµÄ½Ó¿Ú£¬ÔÚÔÆº¯Êý¶Ë£¬Ö±½ÓÓùٷ½ÌṩµÄ
Node SDK£¬¾Í¿ÉÒÔ²Ù×÷ÄãÔÆµÄ×ÊÔ´¡£ÒÔǰ¿ª·¢Ð¡³ÌÐòËùµ£ÓǵÄÊý¾Ý¿â´î½¨¡¢Îļþϵͳ²¿Êð£¬Í¨Í¨Ã»ÓС£
ÄãÖ»ÐèÒªÓÐÔÚС³ÌÐò¿ª·¢ IDE ÀïÃæµÄ ÔÆ¿ª·¢£¬¿ªÍ¨Ò»Ï£¬Ìîд»·¾³ ID£¬±ã¿ÉÒÔÓµÓÐС³ÌÐòµÄÔÆÄÜÁ¦£¡


µ±È»£¬ÆäʵÓÃÔÆ¿ª·¢£¬²¢²»ÅųâÔÓеĺǫ́¼Ü¹¹£¬Í¨¹ýÏÂÃæµÄ¼Ü¹¹£¬ÄãÒ²¿ÉÒÔÎÞ·ìÓëÔÓеĺǫ́·þÎñ¼æÈÝ£¬Ò²¼ò»¯ÁËһЩС³ÌÐò¼øÈ¨µÄÂß¼£º

½ÓÏÂÀ´£¬ÎÒ»á·Ö±ð´ÓС³ÌÐò¶Ë¡¢·þÎñ¶Ë½²ÊöÈçºÎʹÓÃÕâÐ©ÔÆ×ÊÔ´¡£
ʹÓÃÔÆÄÜÁ¦
С³ÌÐò¶Ë
¿Í»§¶Ë£¬ÕâÀïÊÇÖ¸ÔÚС³ÌÐò¶ËÖС£Èç¹ûҪʹÓÃÔÆ¿ª·¢ÄÜÁ¦£¬Çë×öÒÔÏÂÅäÖãº
1.ÔÚ app.json / game.json ÖУ¬ ÖÐÔö¼Ó×Ö¶Î
"cloud": true
2.project.config.json ÖÐÔö¼ÓÁË×Ö¶Î cloudfunctionRoot
ÓÃÓÚÖ¸¶¨´æ·ÅÔÆº¯ÊýµÄĿ¼
3.³õʼ»¯ÔÆ¿ª·¢ÄÜÁ¦£º
//app.js
App({
onLaunch: function () {
wx.cloud.init({
traceUser: true // Óû§ÐÅÏ¢»áÏÔʾÔÚÔÆ¿ª·¢¿ØÖÆÌ¨µÄÓû§Ãæ°åÖÐ
});
}
}); |
С³ÌÐò¶Ë³õʼ»¯ÄÜÁ¦Îĵµ
ÔÚÓû§¹ÜÀíÖлáÏÔʾʹÓÃÔÆÄÜÁ¦µÄС³ÌÐòµÄ·ÃÎÊÓû§ÁÐ±í£¬Ä¬ÈÏÒÔ·ÃÎÊʱ¼äµ¹ÐðÅÅÁУ¬·ÃÎÊʱ¼äµÄ´¥·¢µãÊÇÔÚС³ÌÐò¶Ëµ÷ÓÃ
wx.cloud.init ·½·¨£¬ÇÒÆäÖÐµÄ traceUser ²ÎÊý´«ÖµÎª true¡£
·þÎñ¶Ë
Èç¹ûÄãÏëÔÚÔÆº¯ÊýÖУ¬²Ù×÷Îļþ¡¢Êý¾Ý¿âºÍÔÆº¯Êý×ÊÔ´£¬Äã¿ÉÒÔʹÓÃÎÒÃÇÌṩµÄ·þÎñ¶Ë SDK ½øÐвÙ×÷¡£Ê×ÏÈ£¬½øÈëµ½ÄãµÄij¸öÔÆº¯ÊýÖУ¬°²×°ÒÔÏÂÒÀÀµ°ü£º
npm i --save tcb-admin-node |
ÔÚÔÆº¯ÊýÖгõʼ»¯
// ³õʼ»¯Ê¾Àý
const app = require('tcb-admin-node');
// ³õʼ»¯×ÊÔ´
// ÔÆº¯Êýϲ»ÐèÒªsecretIdºÍsecretKey¡£
// envÈç¹û²»Ö¸¶¨½«Ê¹ÓÃĬÈÏ»·¾³
app.init({
secretId: 'xxxxx',
secretKey: 'xxxx',
env: 'xxx'
});
//ÔÆº¯ÊýÏÂʹÓÃĬÈÏ»·¾³
app.init()
//ÔÆº¯ÊýÏÂÖ¸¶¨»·¾³
app.init({
env: 'xxx'
}); |
·þÎñ¶Ë³õʼ»¯Îĵµ
´æ´¢
ÔÆ¿ª·¢Ìṩ´æ´¢¿Õ¼ä¡¢ÉÏ´«Îļþ¡¢ÏÂÔØÎļþ¡¢CDN¼ÓËÙÎļþ·ÃÎʵÈÄÜÁ¦,¿ª·¢Õß¿ÉÒÔÔÚС³ÌÐò¶ËÓë·þÎñ¶Ëͨ¹ý
API ʹÓÃÕâЩÄÜÁ¦¡£
С³ÌÐò¶Ë
// Ñ¡ÔñͼƬ
wx.chooseImage({
success: dRes => {
// ÉÏ´«Í¼Æ¬
const uploadTask = wx.cloud.uploadFile({
cloudPath: `${Date.now()}-${Math.floor(Math.random(0,
1) * 10000000)}.png`, // Ëæ»úͼƬÃû
filePath: dRes.tempFilePaths[0], // ±¾µØµÄͼƬ·¾¶
success: console.log,
fail: console.error
});
},
fail: console.error,
});
|
С³ÌÐò¶Ë´æ´¢Îĵµ
·þÎñ¶Ë
const app = require('tcb-admin-node');
app.init();
app.uploadFile({
cloudPath: "cover.png",
fileContent: fs.createReadStream(`${__dirname}/cover.png`)
}).then((res) => {
console.log(res);
}).catch((err) => {
console.error(err);
}); |
¿ØÖÆÌ¨
ÉÏ´«ºÃµÄÎļþ£¬¾Í»á³öÏÖÔÚ¿ØÖÆÌ¨ÖУ¬ÈçÏÂͼ¡£Äã¿ÉÒÔÔÚ¿ØÖÆÌ¨Àïɾ³ý¡¢ÏÂÔØ»òÕ߲鿴ͼƬµÄÏêÇé¡£

Ä㻹¿ÉÒÔ¿ØÎļþÕûÌåµÄȨÏÞ£¬ÕâÀﻹÓÐһЩ¾ßÌåµÄ½éÉÜ¡£

·þÎñ¶Ë´æ´¢Îĵµ
Êý¾Ý¿â
С³ÌÐòÔÆÌṩÎĵµÐÍÊý¾Ý¿â ( document-oriented database )£¬Êý¾Ý¿â°üº¬¶à¸ö¼¯ºÏ£¨Ï൱ÓÚ¹ØÏµÐÍÊý¾ÝÖÐµÄ±í£©£¬¼¯ºÏ½üËÆÓÚÒ»¸ö
JSON Êý×飬Êý×éÖеÄÿ¸ö¶ÔÏó¾ÍÊÇÒ»Ìõ¼Ç¼£¬¼Ç¼µÄ¸ñʽÊÇ JSON Îĵµ¡£
ÿÌõ¼Ç¼¶¼ÓÐÒ»¸ö _id ×Ö¶ÎÓÃÒÔΨһ±êÖ¾ÕâÌõ¼Ç¼¡¢Ò»¸ö _openid ×Ö¶ÎÓÃÒÔ±êÖ¾¼Ç¼µÄ´´½¨Õߣ¬¼´Ð¡³ÌÐòµÄÓû§¡£¿ª·¢Õß¿ÉÒÔ×Ô¶¨Òå
_id£¬µ«²»¿ÉÔÚС³ÌÐò¶Ë×Ô¶¨Ò壨ÔÚ·þÎñ¶Ë¿ÉÒÔ£© _openid ¡£_openid ÊÇÔÚÎĵµ´´½¨Ê±ÓÉϵͳ¸ù¾ÝС³ÌÐòÓû§Ä¬ÈÏ´´½¨µÄ£¬¿ª·¢Õß¿ÉʹÓÃÆäÀ´±êʶºÍ¶¨Î»Îĵµ¡£
Êý¾Ý¿â API ·ÖΪС³ÌÐò¶ËºÍ·þÎñ¶ËÁ½²¿·Ö£¬Ð¡³ÌÐò¶Ë API ÓµÓÐÑϸñµÄµ÷ÓÃȨÏÞ¿ØÖÆ£¬¿ª·¢Õß¿ÉÔÚС³ÌÐòÄÚÖ±½Óµ÷ÓÃ
API ½øÐзÇÃô¸ÐÊý¾ÝµÄ²Ù×÷¡£¶ÔÓÚÓиü¸ß°²È«ÒªÇóµÄÊý¾Ý£¬¿ÉÔÚÔÆº¯ÊýÄÚͨ¹ý·þÎñ¶Ë API ½øÐвÙ×÷¡£Ôƺ¯ÊýµÄ»·¾³ÊÇÓë¿Í»§¶ËÍêÈ«¸ôÀëµÄ£¬ÔÚÔÆº¯ÊýÉÏ¿ÉÒÔ˽ÃÜÇÒ°²È«µÄ²Ù×÷Êý¾Ý¿â¡£
Êý¾Ý¿â API °üº¬Ôöɾ¸Ä²éµÄÄÜÁ¦£¬Ê¹Óà API ²Ù×÷Êý¾Ý¿âÖ»ÐèÈý²½£º»ñÈ¡Êý¾Ý¿âÒýÓᢹ¹Ôì²éѯ/¸üÐÂÌõ¼þ¡¢·¢³öÇëÇó¡£Çмǣ¬ÔÚ²Ù×÷Êý¾Ý¿âǰ£¬ÇëÏÈÔÚ¿ØÖÆÌ¨Öд´½¨
collection¡£
С³ÌÐò¶Ë
const
db = wx.cloud.database();
// ²åÈëÊý¾Ý
db.collection('photo').add({
data: {
photo: 'cloud://tcb-xxx/05ca1d38f86f90d66d4751a730379dfa6584dde05ab4-Ma9vMN_fw658.jpg',
title: '·ç¾°'
}
});
// ÌáÈ¡Êý¾Ý
db.collection('photo').get().then((res) =>
{
let data = res.data;
console.log(data);
});
// Êä³ö
// ÔÚС³ÌÐò¶Ë£¬ _openid »á×Ô¶¯²åÈëµ½Êý¾Ý¿âÖÐ
{
photo: 'cloud://tcb-xxx/05ca1d38f86f90d66d4751a730379dfa6584dde05ab4-Ma9vMN_fw658.jpg',
title: '·ç¾°',
_openid: 'oLlMr5FICCQJV-QgVLVzKu1212341'
} |
С³ÌÐò¶ËÊý¾Ý¿âÎĵµ
·þÎñ¶Ë
const
app = require('tcb-admin-node');
app.init();
const db = app.database();
db.collection('photo').limit(10).get().then((res)
=> {
console.log(res);
}).catch((err) => {
console.error(err);
});
// Êä³ö
// ÒòΪÊÇÔÚ·þÎñ¶Ë£¬ÆäËüÓû§µÄÒ²¿ÉÒÔÌáÈ¡³öÀ´
{
photo: 'cloud://tcb-xxx/05ca1d38f86f90d66d4751a730379dfa6584dde05ab4-Ma9vMN_fw658.jpg',
title: '·ç¾°',
_openid: 'oLlMr5FICCQJV-QgVLVzKu1342121'
}
{
photo: 'cloud://tcb-xxx/0dc3e66fd6b53641e328e091ccb3b9c4e53874232e6bf-ZxSfee_fw658.jpg',
title: 'ÃÀÅ®',
_openid: 'DFDFEX343xxdf-QgVLVzKu12452121'
}
{
photo: 'cloud://tcb-xxx/104b27e339bdc93c0da15a47aa546b6e9c0e3359c315-L8Px2Y_fw658.jpg',
title: '¶¯Îï',
_openid: 'DFDFEX343xxdf-QgVLVzKu1342121'
} |
·þÎñ¶ËÊý¾Ý¿âÎĵµ
¿ØÖÆÌ¨
¿ÉÒÔÔÚ¿ØÖÆÌ¨À¿´µ½Óû§²Ù×÷µÄÊý¾Ý£¬ÄãÒ²¿ÉÒÔ×Ô¼ºÔÚ¿ØÖÆÌ¨ÉÏÌí¼Ó¡¢¸üлòɾ³ýÊý¾Ý¡£

Èç¹ûÊý¾ÝÁ¿ÅӴ󣬿ÉÒÔÉèÖÃË÷ÒýÌṩ²éѯµÄЧÂÊ¡£

Êý¾Ý¿âÒ²¿ÉÒÔͨ¹ýÉèÖÃȨÏÞ£¬¹Ü¿ØÃ¿¸ö collection¡£

ÔÆº¯Êý
ÔÆº¯ÊýÊÇÒ»¶ÎÔËÐÐÔÚÔÆ¶ËµÄ´úÂ룬ÎÞÐè¹ÜÀí·þÎñÆ÷£¬ÔÚ¿ª·¢¹¤¾ßÄÚÒ»¼üÉÏ´«²¿Êð¼´¿ÉÔËÐкó¶Ë´úÂë¡£
¿ª·¢Õß¿ÉÒÔÔÚÔÆº¯ÊýÄÚ»ñÈ¡µ½Ã¿´Îµ÷ÓõÄÉÏÏÂÎÄ£¨appid¡¢openid µÈ£©£¬ÎÞÐèά»¤¸´ÔӵļøÈ¨»úÖÆ£¬¼´¿É»ñÈ¡ÌìÈ»¿ÉÐÅÈεÄÓû§µÇ¼̬£¨openid£©¡£
С³ÌÐò¶Ë
wx.cloud.callFunction({
name: 'addblog', // ÔÆº¯ÊýÃû³Æ
data: { // ´«µ½Ôƺ¯Êý´¦ÀíµÄ²ÎÊý
title: 'ÔÆ¿ª·¢ TCB',
content: '´æ´¢¡¢Êý¾Ý¿â´æ¡¢Ôƺ¯Êý'
}
}).then(res => {
console.log(res)
}).catch((err) => {
console.error(err);
}); |
·þÎñ¶Ë
const
app = require("tcb-admin-node");
app.init();
app.callFunction({
name: 'addblog', // ÔÆº¯ÊýÃû³Æ
data: { // ´«µ½Ôƺ¯Êý´¦ÀíµÄ²ÎÊý
title: 'ÔÆ¿ª·¢ TCB',
content: '´æ´¢¡¢Êý¾Ý¿â´æ¡¢Ôƺ¯Êý'
}
}).then((res) => {
console.log(res);
}).catch((err) => {
console.error(err);
}); |
·þÎñ¶ËÔÆº¯ÊýÎĵµ
¿ØÖÆÌ¨
ÉÏ´«ºÃÖ®ºóµÄÔÆº¯Êý£¬¶¼»áÔÚÕâÀïÂÞÁгöÀ´¡£

ÿ´Îµ÷ÓÃÔÆº¯Êý£¬¶¼¿ÉÒÔÔÚÕâÀï¿´µ½ÈÕÖ¾£¬»¹¿ÉÒÔ¹¹Ôì²âÊԵIJÎÊý£¬ÓÃÓÚµ÷ÊÔ¡£

Óï·¨ÌÇ
´ó²¿·ÝµÄ½Ó¿Ú£¬Ä¿Ç°¶¼Ö§³ÖÁ½ÖÖд·¨£¬·Ö±ðÊÇPromise ºÍ Async/Await£¬±¾½ÚÒÔ
callFunction ×÷ΪÀý×Ó£¬ÔÚÔÆº¯ÊýÖнéÉÜÕâÁ½ÖÖд·¨¡£ Async/Await ±¾ÖÊÉÏÊÇ»ùÓÚ
Promise µÄÒ»ÖÖÓï·¨ÌÇ£¬ËüÖ»ÊÇ°Ñ Promise ת»»³Éͬ²½µÄд·¨¶øÒÑ¡£
Promise
const
app = require("tcb-admin-node");
app.init();
exports.main = (event, context, callback) =>
{
app.callFunction({
name: 'addblog', // ÔÆº¯ÊýÃû³Æ
data: { // ´«µ½Ôƺ¯Êý´¦ÀíµÄ²ÎÊý
title: 'ÔÆ¿ª·¢ TCB',
content: '´æ´¢¡¢Êý¾Ý¿â´æ¡¢Ôƺ¯Êý'
}
}).then((res) => {
console.log(res);
callback(null, res.data);
}).catch((err) => {
callback(err);
});
}; |
Async/Await
const
app = require("tcb-admin-node");
app.init();
exports.main = async (event, context) =>
{
let result = null;
try {
result = await app.callFunction({
name: 'addblog', // ÔÆº¯ÊýÃû³Æ
data: { // ´«µ½Ôƺ¯Êý´¦ÀíµÄ²ÎÊý
title: 'ÔÆ¿ª·¢ TCB',
content: '´æ´¢¡¢Êý¾Ý¿â´æ¡¢Ôƺ¯Êý'
}
});
}
catch (e) {
return e;
}
return result;
}; |
ÔÚÔÆº¯ÊýÀïʹÓã¬ÓÉÓÚÊÇ Node 8.9 »òÒÔÉϵĻ·¾³£¬Òò´ËÌìȻ֧³Ö Async/Await Úµ·¨£¬µ«ÔÚС³Ì¶ËҪʹÓõϰ£¬ÐèÒª¶îÍâÒýÈë
Polyfill£¬±ÈÈçÕâ¸ö¿ªÔ´µÄÏîÄ¿£ºregenerator
|