config.json与config.js |什么是global-config.js |在loopback app中查看服务器配置?

时间:2015-10-29 08:15:27

标签: node.js loopbackjs strongloop

  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())

2 个答案:

答案 0 :(得分:2)

逐一回答:

  1. config.jsonconfig.js之间的差异config.json用于指定服务器配置,例如hostport等。{{1如果需要,用于覆盖这些配置。例如。

    如果您想根据国家/地区更改端口号,则可以在config.js中覆盖此页面,您可以在其中查看正在访问环回应用的国家/地区,并根据更改端口号这一点。

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

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

    global-config.js

答案 1 :(得分:2)

  1. 知道loopback可以使用多个配置文件很有用 不同的环境。所以你可能有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 repo。)

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

  3. 正如您所看到的,可以根据您的要求以多种方式处理配置,因此我不认为有一种方法可以写出所使用的每个配置值,而无需编写自定义位代码。