egg-tcb
开启插件
// config/plugin.jsexportstcb = enable: true package: 'egg-tcb';
详细配置
请到 config/config.default.js 查看详细配置项说明。
示例配置:
// config/config.default.jsmoduleexports = tcb: client: enable: true secretId: 'xxxxx' secretKey: 'xxxxx' envId: 'xxxxx' ;
使用说明
单实例
在配置文件中声明 tcb 的配置。
// config/config.default.jsmoduleexports = tcb: client: enable: true secretId: 'xxxxx' secretKey: 'xxxxx' envId: 'xxxxx' ;
直接通过 app.tcb 访问数据库。
// app/controller/post.js async { const posts = await thisapptcbenv; }
返回的是 promise 要用 then 接收或者await async### 多实例 #### 同样需要在配置文件中声明 tcb 的配置,不过和单实例时不同,配置项中需要有一个 clients 字段,分别申明不同实例的配置,同时可以通过 default 字段来配置多个实例中共享的配置(如 secretId 和 secretKey)。需要注意的是在这种情况下要用 get 方法指定相应的实例。(例如:使用 app.tcb.get('d1').env.listEnvs(),而不是直接使用 app.tcb.env.listEnvs() 得到一个 undefined)。 ```js // config/config.default.js exports.mysql = { clients: { d1: { envId: 'e1', }, d2: { envId: 'e2', }, }, // default configuration default: { secretId: 'xxxxx', secretKey: 'xxxxx', }, }; ``` 通过 app.tcb.get('d1') 来获取对应的实例并使用。 ```js // app/controller/post.js class PostController extends Controller { async list() { const posts = await this.app.tcb.get('d1').env.listEnvs(); }, } ``` ### 动态创建实例 我们可以不需要将配置提前申明在配置文件中,而是在应用运行时动态的初始化一个实例。 ```js // app.js module.exports = app => { app.beforeStart(async () => { const tcbConfig = await app.configCenter.fetch('tcb'); // 动态创建 cloudbase 实例 app.cloudbase = await app.tcb.createInstanceAsync(tcbConfig); }); }; ``` 通过 app.cloudbase 来使用这个实例。 ```js // app/controller/post.js class PostController extends Controller { async list() { const posts = await this.app.cloudbase.env.listEnvs(); }, } ``` 注意,在动态创建实例的时候,框架也会读取配置中 default 字段内的配置项作为默认配置。
cloudbase Node SDK
详细接口请访问提问交流
请到 egg issues 异步交流。