
Product
Announcing Bun and vlt Support in Socket
Bringing supply chain security to the next generation of JavaScript package managers
@gaoding/apollo-client
Advanced tools
******************************************************************
******************************************************************
********** 代码千万行,注释第一行 **********
********** 编码不规范,同事泪两行 **********
******************************************************************
******************************************************************
携程 Apollo 配置中心 node.js 客户端版本
npm i @gaoding/apollo-client [--save]
// config/config.[env].js
const Apollo = require('@gaoding/apollo-client').Apollo
const apollo = new Apollo({
config_server_url: 'http[s]://xxxxxxx', // required, 配置中心服务地址
app_id: 'xxx', // required, 需要加载的配置
cluster_name: 'xxx', // optional, 加载配置的集群名称, default: 'default'
namespace_name: 'xxx', // optional, 加载配置的命名空间, default: 'application'
release_key: 'xxx', // optional, 加载配置的版本 key, default: ''
ip: 'xxx' // optional,
set_env_file: false, // optional, 是否写入到 env 文件, default: false
env_file_path: 'xxxx', // optional, 写入的 env 文件路径, default: ${app.baseDir}/.env.apollo
timeout: 50000, // optional, 长轮询 timeout 设置,默认 50000
});
apollo.init() // 加载配置
// 直接提取配置
const env = apollo.get('${namespace}.NODE_ENV');
// 不添加 namespace 前缀的时候,默认使用 application 的配置
// 如果 application 不包含该配置,则提取 process.env 里面的配置
// const env = apollo.get('NODE_ENV');
// 提取类型配置
apollo.getString('${namespace}.${string_config}');
apollo.getNumber('${namespace}.${number_config}');
apollo.getBoolean('${namespace}.${boolean_config}');
apollo.getJSON('${namespace}.${json_config}');
apollo.getDate('${namespace}.${date_config}');
// 提取指定 namespace 内容
const application = apollo.getNamespace('application');
// 提取配置
const config1 = application.get('config1');
// 提取 string 类型配置
const str = application.getString('config2');
// 提取 number 类型配置
const num = application.getNumber('config3');
// 提取 boolean 类型配置
const bool = application.getBoolean('config4');
// 提取 json
const json = application.getJSON('config5');
// 提取 date
const date = application.getDate('config6');
// 提取所有配置内容
const all = apollo.getAll();
// 可以从 all 中提取需要的 namespace 配置
// const application = all.application
// const config1 = application.get('config1');
// const str = application.getString('config2');
// const num = application.getNumber('config3');
// const bool = application.getBoolean('config4');
// const json = application.getJSON('config5');
// const date = application.getDate('config6');
// 动态更新本地配置
apollo.startNotification(config?: IApolloRequestConfig);
apollo.init({...});
使用此 open api 需要先了解 Apollo 开放平台,详情请看链接:https://ctripcorp.github.io/apollo/#/zh/usage/apollo-open-api-platform
此插件是对 openApi 的 restful 接口调用进行整合打包,方便调用
具有两种初始化方案
const apollo = new Apollo({
...apolloConfig,
token: 'xxxxxxx', // Http Header中增加一个Authorization字段,字段值为申请的token
portal_address: 'https://apollo.xxxx.com', // portal url
});
const openApi = apollo.openApi;
const { OpenApi } = require('@gaoding/apollo');
const openApi = new OpenApi({
token: 'xxxxxxx', // required, Http Header中增加一个Authorization字段,字段值为申请的token
portal_address: 'https://apollo.xxxx.com', // required, portal url
app_id: 'xxx', // optional, 需要加载的配置
cluster_name: 'xxx', // optional, 加载配置的集群名称, default: 'default'
namespace_name: 'xxx', // optional, 加载配置的命名空间, default: 'application'
});
api 参数和详细文档请参照:https://ctripcorp.github.io/apollo/#/zh/usage/apollo-open-api-platform?id=%e4%b8%89%e3%80%81-%e6%8e%a5%e5%8f%a3%e6%96%87%e6%a1%a3
openApi Methods:
FAQs
apollo nodejs client
We found that @gaoding/apollo-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Bringing supply chain security to the next generation of JavaScript package managers

Product
A safer, faster way to eliminate vulnerabilities without updating dependencies

Product
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.