我有一个网站,我希望客户能够通过设置 var live = true;
,然后设置网页以显示是否为真,从而使他们的网站上线。我不想将live
变量保存在数据库中(仅为此的集合没有意义(。有没有办法在 NodeJS 中为变量赋一个永久值?
当然,您可以使用环境变量。启动 NodeJs 服务时,可以传递这样的变量,
LIVE=true node server.js
然后从像这样的任何地方从应用程序访问它,
var live = process.env.LIVE
但是,我建议您使用特定于环境的配置文件来实现您的目的。通过这样做,您可以根据执行环境(QA、DEV、STAGEAGING、PRODUCTION 等(更改 LIVE 变量。
您可以使用所需的配置定义 json 文件,
{
"LIVE": true,
// More variables can be defined here
}
并将文件存储在绝对路径(而不是本地存储库中(中,例如/usr/local/my_configs/
或/etc/my_confs/
。
然后import
或require
配置文件,类似于需要.js
文件的方式。
喜欢这个
var my_config = require('/etc/my_confs/my_conf.json');
const LIVE = my_config.LIVE;
您无法完全保存它,但可以从环境文件(或(环境变量中读取。喜欢.env
.
要更改变量,必须配置环境变量。
.env(本地(:
LIVE=TRUE
在云中,您将具有 GUI 设置,您可以在其中配置变量。
然后,您可以简单地将变量设置为:
var live = process.env.LIVE;
要求您的客户手动设置变量。大多数情况下,您必须限制它们的可访问性
您可以在nodejs中使用YAML模块。
default:
server:
port: 6379 # server port
live: true # option for live
您可以读取这些值并写入这些值。 它更快, 您想要的安全方法和小型数据库类型
https://www.npmjs.com/package/yaml-config
如果变量要针对不同的用户进行更改,请将其存储在针对用户 ID 的 JSON 文件中。 考虑 DiskDb JSON 文件,但可以用作查询。
你可以应用它来处理这样的变量:
process.live = true ;
然后你可以在系统中的任何位置访问它,但是如果你运行两个系统,你可以从另一个系统更改 process.live 值,因为进程对象保存