首页 > web前端 > js教程 > 从 JSON 到环境变量:介绍 json-to-env-converter

从 JSON 到环境变量:介绍 json-to-env-converter

Barbara Streisand
发布: 2025-01-02 17:54:39
原创
913 人浏览过

From JSON to Environment Variables: Introducing json-to-env-converter

您好!这是我的第一篇文章(所以请在评论中对我宽容一些?)。我很高兴分享我一直在从事的一个小项目,该项目是出于个人需要。如果您曾经努力管理 Node.js 应用程序中的配置,您可能会发现这个小的零依赖包很有趣。它被称为 json-to-env-converter。

什么是 json-to-env-converter?

json-to-env-converter 是一个 npm 包,可将 JSON 对象转换为环境变量。它是一个轻量级工具,旨在帮助您处理基于 JSON 的配置,方法是将其转换为环境变量并将其注入到 process.env 中;它适用于配置可能是动态的、嵌套的或源自 API 或外部系统的场景。

想法是这样的:您可以通过编程方式从 JSON 对象加载它们并像任何其他环境变量一样访问它们,而不是手动设置复杂或动态配置的环境变量。

我为什么要构建它?

我最近为我个人正在从事的每个项目构建了一个秘密 API;我正在调用我的 Secrets api 以在运行时获取以 json 格式提供的配置。更不用说在现代和大型应用程序中,配置可以根据用户位置或其他动态因素而改变。虽然 .env 文件非常适合静态设置,但它们不容易处理:

  • 嵌套结构:将嵌套 JSON 扁平化到环境变量中可能会很乏味。
  • 动态源:在运行时加载配置而不重新启动应用程序并不简单。

我构建了 json-to-env-converter 来再次探索解决这些问题的方法,它更多的是供个人使用的项目,它绝对不是为了取代像 dotenv 这样的工具,而是为了处理稍微不同的用例;我想将其开源并在 npm 上公开发布有什么坏处,如果有人发现使用它,我会很高兴。

如何运作

从 npm 安装软件包:

npm i json-to-env-converter
登录后复制
登录后复制

这是一个简单的例子来展示它的作用:

基本示例

import { jsonToEnv } from 'json-to-env-converter';

const config = {
  database: {
    host: 'localhost',
    port: 5432,
  },
};

jsonToEnv(config);

console.log(process.env.DATABASE_HOST); //Output: 'localhost'
console.log(process.env.DATABASE_PORT); //Output: '5432'
登录后复制
登录后复制

这需要一个 JSON 对象并将其转换为环境变量。它还会展平嵌套键,因此database.host 成为DATABASE_HOST。

添加前缀

为了避免冲突,您可以添加前缀:

jsonToEnv(config, { prefix: 'MYAPP_' });

console.log(process.env.MYAPP_DATABASE_HOST); //Output: 'localhost'
登录后复制

用例:动态配置

此包的一个潜在用例是处理动态配置。例如,假设您有一个全局应用程序,可以在运行时获取特定于区域的设置。您可以根据用户的位置动态加载正确的设置,而不是手动管理每个区域的 .env 文件:

npm i json-to-env-converter
登录后复制
登录后复制

这允许您的应用程序调整其配置,而无需重新启动或硬编码值。

你应该使用它吗?

老实说,我仍在决定这个包的用途有多大。如果您已经熟悉 .env 文件和静态配置,则可能不需要此工具。但如果您正在使用:

  • 配置在运行时更改的动态环境
  • 需要转换为平面环境变量的嵌套 JSON 对象
  • 来自 API 或外部服务的编程配置设置

并且对您当前的设置不满意,那么 json-to-env-converter 可能会节省您一些时间,值得一试。

安装与反馈

如果您想尝试一下,可以从 npm 安装它:

import { jsonToEnv } from 'json-to-env-converter';

const config = {
  database: {
    host: 'localhost',
    port: 5432,
  },
};

jsonToEnv(config);

console.log(process.env.DATABASE_HOST); //Output: 'localhost'
console.log(process.env.DATABASE_PORT); //Output: '5432'
登录后复制
登录后复制

我很想听听您的想法、反馈或最重要的改进建议,因此请随时在此处的评论中提及或在我的 github 存储库上提交拉取请求 https://github.com/neenus/json-to -env。这对我来说是一次学习经历,我很高兴看到它的发展方向。

哦,还有一件事...感谢您阅读我的第一篇文章!

以上是从 JSON 到环境变量:介绍 json-to-env-converter的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板