@featurevisor/openfeature-provider-node

中文文档
4.8.0发布于 2026/11/14MITTypeScriptESM + CJS构建来源已验证近 30 天下载 1.9万

节点.js 中的特性的 OpenFeature 提供者

中文使用文档
文档目录6 节
  1. 安装
  2. 使用量
  3. 特征实例
  4. 让提供者创建实例
  5. 重用已有实例
  6. 许可证

节点.js 的特性查看器 OpenFeature 提供者

在Node.js中通过OpenFeature服务器SDK使用特写.

安装

npm install @featurevisor/openfeature-provider-node @openfeature/server-sdk

使用量

import { OpenFeature } from '@openfeature/server-sdk'
import { FeaturevisorOpenFeatureProvider } from '@featurevisor/openfeature-provider-node'

const provider = new FeaturevisorOpenFeatureProvider({ datafile })
await OpenFeature.setProviderAndWait(provider)

const client = OpenFeature.getClient()
const enabled = await client.getBooleanValue('checkout', false, {
  targetingKey: 'user-123',
  country: 'nl',
})

OpenFeature 特性评价的密钥映射 :

密钥评价
checkout旗帜
checkout:variation变量
checkout:title变量名称 title
variable:supportEmail全局变量命名 supportEmail

使用匹配特性值类型的解析器 。 布尔变量使用带有后缀密钥的布尔解析器. 矩阵,对象,和JSON变量使用对象解析器.

提供者映射 OpenFeature targetingKey 到特性 userId 默认。 配置 targetingKeyField, (中文(简体) ), keySeparator, (中文(简体) ), variationKey,或 globalVariablePrefix 当您的项目需要不同的名称时。 全局变量前缀默认为 variable。 。 。 .

提供者区分省略 targetingKey 从一个明显的空字符串。 OpenFeature 服务器客户端通过,所以 { targetingKey: '', userId: 'old' } 地图 userId 转到空字符串。 如果没有提供目标密钥,则存在 userId 被保存下来。 无型号的JavaScript呼叫器也可以提供限定数字瞄准键,包括 0· ; NaN 并且无穷无尽不会凌驾于现有的字段之上.

特征实例

提供者可以创建和拥有一个特异功能实例,也可以重新使用由您的应用程序创建的特异功能实例.

让提供者创建实例

向提供者传递普通特性选项 :

const provider = new FeaturevisorOpenFeatureProvider({
  datafile,
  modules,
  onDiagnostic,
})

提供者将创建的实例曝光为 provider.featurevisor。您可以将其用于数据文件更新、事件、诊断和其他功能化API。 OpenFeature关闭提供者后,提供者会关闭此实例并释放其资源.

重用已有实例

通过一个创建于 createFeaturevisor() 使用 featurevisor 选项 :

import { OpenFeature } from '@openfeature/server-sdk'
import { createFeaturevisor } from '@featurevisor/sdk'
import { FeaturevisorOpenFeatureProvider } from '@featurevisor/openfeature-provider-node'

const featurevisor = createFeaturevisor({ datafile })
const provider = new FeaturevisorOpenFeatureProvider({ featurevisor })

await OpenFeature.setProviderAndWait(provider)

同一实例与 provider.featurevisor评估、数据文件更新、模块、诊断和事件继续使用这一实例.

无效的初始数据文件拒绝 setProviderAndWait 与 PARSE_ERROR无论诊断记录水平如何 在提供有效数据文件之前,提供者仍然处于错误状态。 错误的更新会发出错误事件并解析到 OpenFeature 默认值 PARSE_ERROR。一个有效的更新可以恢复准备状态,包括当它恢复先前接受的数据文件时.

你的申请中仍然有这样的例子 关闭"OpenFeature"供应商不会关闭,所以其他消费者可以继续使用. 打电话 featurevisor.close() 当每个消费者都结束了.

若为 featurevisor 和特性构建选项,例如 datafile 或者说 modules 同时提供,现有实例优先,施工选项被忽略。 提供者选项,例如 targetingKeyField, (中文(简体) ), keySeparator, (中文(简体) ), variationKey, (中文(简体) ), globalVariablePrefix,以及 onTrack 仍然适用.

见 OpenFeature 文档 原因、错误、元数据、跟踪、生命周期和其他语言提供者.

许可证

麻省理工学院 法哈德·海拉尔

版本与发布记录

@featurevisor/openfeature-provider-node 共发布 10 个版本,首次发布于 2026/07/25;过去 12 个月发布了 10 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.8.0latest2026/11/14今天
4.3.02026/10/2718 天前
4.0.12026/10/2025 天前
4.0.02026/10/1926 天前
3.8.02026/08/312 个月前
3.7.02026/08/292 个月前

关于 @featurevisor/openfeature-provider-node 的常见问题

@featurevisor/openfeature-provider-node 是什么?

节点.js 中的特性的 OpenFeature 提供者

如何安装 @featurevisor/openfeature-provider-node?

在项目目录运行 npm install @featurevisor/openfeature-provider-node,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@openfeature/server-sdk(^1.23.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@featurevisor/openfeature-provider-node 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@featurevisor/openfeature-provider-node 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@featurevisor/openfeature-provider-node 可以商用吗?

@featurevisor/openfeature-provider-node 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@featurevisor/openfeature-provider-node 的下载量有多少?

根据 npm 官方下载统计,@featurevisor/openfeature-provider-node 在 2026/10/15 – 2026/11/13 这 30 天内被下载 19,433 次,日均约 648 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@featurevisor/openfeature-provider-node 还在维护吗?

最新版本 4.8.0 发布于 2026/11/14(今天);至今共发布 10 个版本,其中过去 12 个月发布了 10 个;首次发布于 2026/07/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。