【问题标题】:Golang Config File should load their own package [duplicate]Golang 配置文件应该加载自己的包[重复]
【发布时间】:2017-12-24 06:11:43
【问题描述】:

我有两个项目是 1.网络项目 2. 经纪人项目

services
    -web/util.go
    -main.go
    -cofig.json


broker
    -consumer/redis.go
    -consumer/mongo.go
    -main.go
    -<cofig.go>   //I do not want to make a copy here

我为我的 Web 项目开发了一个实用程序,它使用 config.json 文件。在那个实用程序中,我使用如下代码

file, _ := os.Open("./config.json")

这工作正常。 当我将此项目包含到 Broker 项目中时,例如

package "services/web"

我尝试在其中使用实用程序代码,但它尝试从 Broker 项目而不是“服务 Web 项目”中查找“config.json”。由于这个原因,我需要在 Broker 项目中复制相同的文件。

请帮助我将单个文件保存在“服务/网络”中

先谢谢了。

问候, 迪内什

【问题讨论】:

  • 您确定相对文件路径正确吗?
  • 这不是相对或绝对路径的情况。我想重用现有代码并且不想重复。在当前情况下正在发生这种情况。

标签: go


【解决方案1】:

您需要以不同的方式解决问题。您正在将代码编译为单个二进制文件,因此当您的程序实际运行时,它已经丢失了所有的包结构。

最简单的解决方案是修改services/web 以接受web.Config 结构而不是从文件加载。然后消费者(在这种情况下为broker 包)负责提供配置。如果需要,它可以使用文件。

【讨论】:

  • @chawey 我明白你说的。现在我担心的是,当我们为生产构建/安装应用程序时,我们每次都需要在窗口和 Linux 之间更改路径。请指导我如何在两个环境中配置该工作的路径
  • 其实一个很好的参考是链接问题:stackoverflow.com/questions/31059023/….
  • @chawey 谢谢。我了解 Golang。 Golang 的工作原理。
猜你喜欢
  • 1970-01-01
  • 2018-01-31
  • 2017-01-04
  • 2010-10-06
  • 1970-01-01
  • 2022-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多