2

我创建了一个 mochiweb 实例

src/
   |-- Makefile
   |-- room.erl
   |-- myserver.app
   |-- myserver.erl
   |-- myserver_app.erl
   |-- myserver_deps.erl
   |-- myserver_sup.erl
   |-- myserver_web.erl
   `-- uuid.erl

myserver_web.erl我能够访问应用程序配置

{ok, "0.0.1"} = application:get_key(vsn),

但是room.erl,我无法访问应用程序配置(特别是env列表)。

undefined = application:get_key(vsn),

主管没有启动房间,我也不想要它。

我是 OTP 的新手,我意识到我可能在做一些愚蠢的事情,但我非常感谢任何人的帮助。

干杯!

4

3 回答 3

3

关于应用程序的 Erlang 文档:get_key/1-2 函数

返回应用程序规范键 Key for Application 的值。如果省略 application 参数,则默认为调用进程的应用程序。

my_server_web.erl 的应用是什么?room.erl有什么应用?

如果指定的应用程序没有加载,或者指定键不存在,或者执行调用的进程不属于任何应用程序,则函数返回 undefined。

是否指定了密钥?应用程序是否已加载?

关于“env”键,您可以改用application:get_env/1 函数

于 2010-11-06T16:52:25.713 回答
1

我想通了...答案很愚蠢,我觉得发帖很愚蠢,但我希望其他人可以从我这里受益。

我实际上做的一切都是正确的(就像所有其他答案一样),但我使用的是 mochiweb 的自动重新加载器,并没有真正停止服务器。一旦我这样做了,一切都很好。

哦!对不起!

于 2010-11-06T18:50:37.393 回答
0

改为使用get_key(myserver, vsn)。请注意,需要先加载应用程序。

于 2010-11-06T07:59:04.257 回答