首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Loopback4:在开发和生产环境之间的切换

问Loopback4:在开发和生产环境之间的切换
EN

Stack Overflow用户
提问于 2019-03-20 16:52:54
回答 1查看 899关注 0票数 1

简单地说,我应该如何在lp4应用程序上实现开发和prod之间的切换。

我添加了我的数据源,一切都很好,但它是一个.json文件。如何切换到保存在可以通过dotenv包读取的.env文件中的另一个配置。

我尝试过手动创建数据源对象,但是我得到了错误,所以我的方法很可能是错误的。如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-03-22 18:12:12

LoopBack团队的大家好

LoopBack不支持开箱即用的dotenv。

如果希望将特定于环境的配置保存在文件中,则应该将生产配置放置为server/datasources.production.json,然后将环境变量NODE_ENV设置为production。LoopBack正在启动时读取server/datasources.${NODE_ENV}.json,并在server/datasources.json中指定的默认配置之上应用该文件的任何重写。

尽管如此,我们认为最好使用https://12factor.net并通过环境变量提供生产配置。我想这也是你想要达到的?

也许您正在寻找一种如何配置来自环境变量的数据源的方法?LoopBack支持某些配置文件中的变量替换,datasources.json是支持的文件之一。例如:

代码语言:javascript
复制
{
  "db": {
    "connector": "mysql",

    "database": "${MYSQL_DB}",
    "username": "${MYSQL_USER},
    "password": "${MYSQL_PASSWORD}"
}

特别是在数据源方面,我们建议采用一种稍微不同的方法:

  • 本地开发使用的连接设置是在server/datasources.json文件中使用host、database、username等数据源配置选项指定的。
  • 在生产中运行(暂存等)时,应该通过单个连接字符串/url配置连接设置。数据源文件应该包含一个条目,将url属性设置为环境提供的值。
  • 在遮罩下,LoopBack和所有连接器提供支持此功能的特定行为:url属性覆盖所有其他设置,但当它不存在时将被忽略。

数据源配置示例:

代码语言:javascript
复制
{
  "db": {
    "connector": "mysql",

    "database": "demo",
    "username": "demo",
    "password": "L00pBack"

    "url": "${MYSQL_URL}"
}

在生产中运行时,可以按以下方式设置连接字符串:

代码语言:javascript
复制
export MYSQL_URL=mysql://prod:strong-password@localhost/realdb

请参考我们以前的博客文章https://strongloop.com/strongblog/managing-loopback-configurations-the-twelve-factor-way/来了解更多的细节。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55266175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档