【问题标题】:config.json vs. config.js | what is global-config.js | view server configuration in loopback app?config.json 与 config.js |什么是 global-config.js |在环回应用程序中查看服务器配置?
【发布时间】:2015-10-29 21:50:31
【问题描述】:
  1. config.jsonconfig.js 有什么区别?我必须同时使用两者吗?我什么时候需要使用其中一种? (https://docs.strongloop.com/display/public/LB/Environment-specific+configuration#Environment-specificconfiguration-Example)

  2. global-config.js 是什么?它存在于 Loopback 示例应用程序 (https://github.com/strongloop/loopback-example-offline-sync/blob/master/global-config.js) 中,但在文档 (https://docs.strongloop.com/dosearchsite.action?queryString=%22global-config.js%22) 中没有任何关于它的信息。他们为什么要为应用配置发明一些第三层?

  3. 如何在运行时查看完整配置?有这样的代码吗?

    console.log(app.getFullConfig())

【问题讨论】:

    标签: node.js loopbackjs strongloop


    【解决方案1】:

    一一回答:

    1. config.jsonconfig.js 之间的区别在于,config.json 用于指定服务器配置,如hostport 等。而config.js 用于在需要时覆盖这些配置。例如。

      如果您想根据国家/地区更改端口号,则可以在 config.js 中覆盖此设置,您可以在其中查看正在访问哪个国家环回应用程序并根据该更改端口号。

    2. global-config.js 位于server/ 文件夹之外。即它可以被许多loopback appserver/文件夹使用。因此,名称 - global-config.js

    3. LoopBack 是在 Express 之上创建的。因此,您可以在启动应用程序时使用此选项。

      DEBUG=express:application node .

    【讨论】:

      【解决方案2】:
      1. 知道环回可以使用多个配置文件 不同的环境。所以你可能有config.json 开发,config.production.json 用于生产,也许 使用 production.json 配置关闭 API 资源管理器。 Loopback 足够聪明,可以查看您的环境变量以 确定使用哪一个。

        除此之外,您可以使用 .js 配置文件作为进一步覆盖,正如您所期望的那样,它允许运行一些实际代码。为了 例如我的本地数据库有一个datasources.json 连接信息和datasources.production.js 文件 看起来有点像这样:

        var dbhost = process.env.DB_HOST,
              dbname = process.env.DB_NAME,
              dbusername = dbname,
              dbpassword = process.env.DB_PASSWORD;
        
         module.exports = {
              "db": {
                "host": dbhost,
                "port": 5432,
                "database": dbname,
                "username": dbusername,
                "password": dbpassword,
                "name": "db",
                "connector": "postgresql"
              }
          }
        

        如您所见,我可以使用环境变量来存储数据库 连接详细信息,我不希望将其存储在文件中(因为 我正在使用公共 github 存储库)。

      2. global-config.js 特定于您已链接的项目 至。它是一个通用的 Javascript 应用程序,所以 作者正在使用此文件在服务器之间共享配置 和客户端代码。你可以通过searching the repo for 'global-config' 看到他是如何使用它的——这是另一个很好的例子,说明你为什么可以 不过使用 .js 配置文件,因为当应用在本地运行时,他的 config.local.js 使用代码访问 global-config.js 中的配置以覆盖 config.json

      3. 如您所见,可以根据您的要求以多种方式处理配置,因此我认为没有一种方法可以在不编写自定义代码的情况下写出正在使用的每个配置值.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多