config.json与config.js | 什么是global-config.js | 在环回应用程序中查看服务器configuration?

  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 )。 为什么他们发明了第三层应用程序configuration?

  3. 如何在运行时看到完整的configuration? 它有这样的代码吗?

    console.log(app.getFullConfig())

一一回答:

  1. config.jsonconfig.js之间的区别是config.json用于指定服务器configuration,如hostport等。而config.js用于覆盖这些configuration,如果需要的话。 例如。

    如果您想要根据国家更改端口号,则可以在config.js中覆盖此处,您可以从哪个国家/地区看到回送应用正在访问,并根据此更改端口号。

  2. global-config.jsserver/文件夹之外回收。 即它可以被许多回送应用程序server/文件夹使用。 因此,这个名字 – global-config.js

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

    DEBUG=express:application node .

  1. 了解loopback可以在不同的环境中使用多个configuration文件是有用的。 所以你可能有config.json进行开发, config.production.json进行生产,也许在production.jsonconfigurationclosuresAPI浏览器。 Loopback很聪明,可以查看你的环境variables来确定使用哪一个。

    除此之外,您可以使用.jsconfiguration文件作为进一步的覆盖,正如您期望的那样允许运行一些实际的代码。 例如我有一个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" } } 

    正如你所看到的,我能够使用环境variables来存储数据库连接的细节,我不希望存储在一个文件(因为我使用公共github回购)。

  2. global-config.js是特定于您链接到的项目。 这是一个通用的JavaScript应用程序,所以作者正在使用这个文件共享服务器和客户端代码之间的configuration。 您可以通过search“global-config”来了解他是如何使用它的 – 这是为什么您可以使用.jsconfiguration文件的另一个很好的例子,因为他的config.local.js使用代码来访问global-config.js覆盖config.json ,当应用程序在本地运行。

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