alinex-config中文文档|alinex-config js中文教程|解析

npm npmdoc 2年前 (2022-01-01) 605次浏览

alinex-config中文文档|alinex-config js中文教程|解析

安装命令:npm i alinex-config

Alinex 配置:自述文件

GitHub 观察者

GitHub 星星
GitHub 分叉

npm 包
最新版本

特拉维斯状态
工作服状态
Gemnasium 状态
GitHub 问题

该软件包将为您提供一种在应用程序或模块中加载和使用配置设置的简单方法。

它将读取不同格式(YAML、JSON、XML、JavaScript、CoffeeScript)的命名文件,并支持验证和优化/完成。此外,配置将根据文件系统的变化自动更新,并可能通知它的依赖对象。

主要特点是:

  • 可写配置
  • 允许不同的文件格式
  • 支持值验证
  • 支持值修改规则
  • 文件更改时自动重新加载

它是
遵循
通用文档中定义的代码标准
Alinex 命名空间的模块之一

阅读https://alinex.github.io/node-config下的完整文档

安装

新产品管理
下载

最简单的方法是让 npm 将模块直接添加到您的模块中(从您的节点模块目录中):

npm install alinex-config --save

并稍后更新到最新版本:

npm update alinex-config --save

总是看看最新的变化

来源/文件格式

此配置类允许交替或组合使用多种格式。所以你可以使用你最熟悉的格式。请参阅 {@link alinex-format/src/type/index.md alinex-format} 包以获得允许格式的详细说明以及如何编写它们的说明。

如上面链接中所述,您可以使用不同的格式,但您也可以将配置拆分为多个文件,并在每个文件中使用不同的格式。

因此,作为第一个示例,如果您有一个包含三个主要部分的非常大的配置,您可以将其拆分为 3 个不同的文件。

# config/server/http.yml 
listen:
  ip: 192.168.0.1
  port: 80
# config/server/ftp.yml 
listen:
  ip: 192.168.0.1
  port: 21
# config/server/mail.yml 
pop:
  port: 110
imap:
  port: 143

如果程序现在读取,config/**您将获得组合结构:

server:
  http:
    listen:
      ip: 192.168.0.1
      port: 80
  ftp:
    listen:
      ip: 192.168.0.1
      port: 21
  mail:
    pop:
      port: 110
    imap:
      port: 143

这是因为配置系统将自动使用星号后面的名称作为结构级别,但您可以使用原始设置中的过滤器和路径来控制组合规则(见下文)。

用法

要使用配置管理,您必须先加载模块:

config = require 'alinex-config'

这将返回主配置实例。但是在您可以访问您的配置之前,您必须设置系统(如果尚未完成)并对其进行初始化:

# register common configuration paths for application 
config.register 'myapp'__dirname
# add a special path on the end (highest priority) 
config.pushOrigin
  uri: 'file:///etc/my-config.yml'
# and add a schema to verify the database settings are correct 
config.setSchema 'database',
  type: ....  # schema 
 
# start initializing the configuration and load the data 
config.init (err) ->
  return cb err if err
  # all configurations are loaded successfully 

或者,您可以跳过程序并显示详细的错误消息:

config.init (err) ->
  if err
    console.error "FAILED: #{err.message}"
    console.error err.description
    process.exit 1

在使用之前,请确保对所有配置数据完全初始化。如果您稍后更改设置,则必须重新初始化所有会导致额外负担的内容,如果可能,您应该跳过这些内容。

完成后,您可以轻松访问配置,例如:

conf = config.data
# here you have the whole registry data 
conf = config.get 'server'
# and now you have only the server structure 
conf = config.get 'database/master/address'
# or only a specific database connection 

不要弄乱名称:我总是config使用实例寻址并使用短名称,例如其中conf的一些数据。

根据需要,您还可以完全重新加载配置:

config.reload (err) ->
  if err
    console.error "FAILED: #{err.message}"
    console.error err.description
    process.exit 1

但是如果你想在你的应用程序中知道 tp 然后一些配置发生了变化,你可以使用路径作为一个事件,如果这个元素或下面的一个元素发生变化,它就会被触发。

config.on '/address'->
  console.log "New addresses found, reinit the list..."
  myList = config.get '/address'

调试

如果您有任何问题,您可以使用预定义的标志调试代码。它使用调试模块让您定义要调试的内容。

将 DEBUG 环境变量设置为

  • ‘config’ 基本信息
  • ‘config:value’ 加载后的结构
  • ‘config:access’ 包含有关访问数据的信息
  • ‘config*’ 所有这些

您还可以使用逗号组合它们或仅使用 DEBUG=* 来显示所有模块的所有调试消息。

如果config
启用
了通用调试,则会进行额外的值检查

执照

(C) 版权所有 2014-2016 Alexander Schilling

根据 Apache 许可,版本 2.0(“许可”)获得许可;除非遵守许可,否则您不得使用此文件。您可以在以下网址获得许可证的副本

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据许可分发的软件是按“原样”分发的,没有任何类型的明示或暗示的保证或条件。请参阅许可证以了解管理许可证下的许可和限制的特定语言。

项目贡献人员列表:


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:alinex-config中文文档|alinex-config js中文教程|解析
喜欢 (0)
.excerpt .focus {display:none}