loopBack 3 环境配置

本文档详细介绍了LoopBack 3的应用程序配置,包括环境变量的设置,如何配置数据库,以及在不同操作系统下获取环境变量的方法。重点讨论了在生产环境中如何关闭堆栈跟踪、禁用API Explorer以及控制HTTP响应中的堆栈跟踪。
摘要由CSDN通过智能技术生成

概述

LoopBack应用程序具有以下类型的配置文件:

  • 应用程序范围的配置文件 默认是server/config.json,也可以使用比如server/config.local.js这样的js文件来设置那些不能使用简单JSON数据的配置对象。
  • Data source配置文件 默认是server/datasources.json,也可以使用js文件,同上所述。
  • 模型的Application级的配置 默认是server/model-config.json
  • Middleware配置 默认是server/middleware.json
  • components配置 默认为server/component-config.json

注意: 使用* .js文件配置LoopBack应用程序仅在原始.json文件保留到位时才有效。 您应该覆盖.js文件中.json文件的值,而不是用.js文件替换.json文件。 也就是说,通过将默认的.json文件保留为空,所有配置都可以在.js文件中完成。

LoopBack将始终加载以下配置文件(如果存在):

  • server/config.json.
  • server/config.local.json or server/config.local.js.
  • server/datasources.json
  • server/datasources.local.json or server/datasources.local.js
  • server/model-config.json
  • server/model-config.local.json or server/model-config.local.js
  • server/middleware.json
  • server/middleware.local.json or server/middleware.local.js
  • server/component-config.json
  • server/component-config.local.json or server/component-config.local.js

此外,当设置NODE_ENV环境变量时,LoopBack将从以下位置加载配置:

  • server/config.env.json/js
  • server/datasources.env.json/js
  • server/model-config.env.json/js
  • server/middleware.env.json/js
  • server/component-config.env.json/js

其中_env_是NODE_ENV的值(通常是“development”,“test”或“production”)。
这使您可以为开发,测试和生产环境设置配置。

要在localhost上进行测试,可以在shell中设置NODE_ENV变量或任何其他环境变量的值。
节点服务器使用shell中的相同变量。

您可以使用_process.env.NODE_ENV_访问代码中的NODE_ENV变量。

注意: LoopBack应用程序可以加载多个配置文件,这些文件可能会相互冲突。 具有最高优先级的文件设置的值将始终生效。 优先事项是:

  1. 特殊环境配置 基于NODE_ENV的值; 例如,server/config.staging.json
  2. 本地配置文件 比如:server/config.local.json
  3. 默认配置文件 比如: server/config.json

应用程序范围的配置文件

server/config.json中定义应用程序服务器端设置

可以使用以下方法覆盖config.json中的配置:

  • 使用config.local.jsconfig.local.json
  • 使用config.env.jsconfig.env.json,这里的env是NODE_ENV变量值,比如config.production.js

重要: 附加文件只能使用值类型(字符串,数字)覆盖顶级键。 不支持嵌套对象和数组。

例如:

config.production.js

module.exports = {
  host: process.env.CUSTOM_HOST,
  port: process.env.CUSTOM_PORT
};

确保不返回堆栈跟踪

处于生产环境下,确保堆栈跟踪关闭以进行生产。

  • 使用 NODE_ENV production 指定生产环境。
  • server/middleware.production.json里加上下面的语句:
"final:after": {
    "strong-error-handler": {}
  }

注意: Application生成器为您创建一个具有上述配置的middleware.development.json文件,因此您所要做的就是确保NODE_ENV环境变量不是开发的。

禁用API Explorer

在开发的时候使用API Explorer十分方便,但是在生产环境中往往需要关闭。

  • 使用 NODE_ENV production 指定生产环境。
  • server/component-config.production.json添加下面语句。
{
  "loopback-component-explorer": null
}

在HTTP响应中包含堆栈跟踪

默认情况下,LoopBack 3.0应用程序从HTTP响应中排除错误堆栈跟踪(通常在生产中)。 对于开发和调试,您可能希望包含它们; 为此,将NODE_ENV环境变量设置为development,以便应用程序使用middleware.development.json

此文件包括以下将包含HTTP响应中的堆栈跟踪:

{
  "final:after": {
    "strong-error-handler": {
      "params": {
        "debug": true,
        "log": true
      }
    }
  }
}

数据库配置

可以使用以下方法覆盖datasources.json中的配置:

  • 使用datasources.local.jsdatasources.local.json
  • 使用datasources.env.jsdatasources.env.json,这里的env是NODE_ENV变量值,比如datasources.production.json

例如:

datasources.json

{
  db: {
    connector: 'memory'
  }
}

datasources.production.json

{
  db: {
    connector: 'mongodb',
    database: 'myapp',
    user: 'myapp',
    password: 'secret'
  }
}

datasources.production.js

module.exports = {
  db: {
    connector: 'mongodb',
    hostname: process.env.DB_HOST,
    port: process.env.DB_PORT || 27017,
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: 'myapp',
  }

在上面的例子中,将加载运行export PRODUCTION = true(或者为Windows设置PRODUCTION = true`)数据源。

获取环境变量

MacOS and Linux

使用此命令设置环境变量并在一个命令中运行应用程序:

$ MY_CUSTOM_VAR="some value" node .

$ export MY_CUSTOM_VAR="some value"
$ node .

然后,此变量可作为process.env.MY_CUSTOM_VAR提供给您的应用程序。

Windows

C:\> set MY_CUSTOM_VAR="some value"
C:\> node .
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值