egg-tcb

1.0.2 • Public • Published

egg-tcb

NPM version build status Test coverage David deps Known Vulnerabilities npm download

开启插件

// config/plugin.js
exports.tcb = {
  enable: true,
  package: 'egg-tcb',
};

详细配置

请到 config/config.default.js 查看详细配置项说明。

示例配置:

// config/config.default.js
module.exports = {
  tcb: {
    client: {
      enable: true,
      secretId: 'xxxxx',
      secretKey: 'xxxxx',
      envId: 'xxxxx',
    },
  },
};

使用说明

单实例

在配置文件中声明 tcb 的配置。

// config/config.default.js
module.exports = {
  tcb: {
    client: {
      enable: true,
      secretId: 'xxxxx',
      secretKey: 'xxxxx',
      envId: 'xxxxx',
    },
  },
};

直接通过 app.tcb 访问数据库。

// app/controller/post.js
class PostController extends Controller {
  async list() {
    const posts = await this.app.tcb.env.listEnvs();
  },
}
返回的是 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 异步交流。

License

MIT

Package Sidebar

Install

npm i egg-tcb

Weekly Downloads

0

Version

1.0.2

License

MIT

Unpacked Size

14.7 kB

Total Files

9

Last publish

Collaborators

  • az913648653