问题标签 [nitrogen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
173 浏览

erlang - 除了本地主机,我无法从任何机器访问氮气/inets 服务器

感谢这个论坛中的许多讨论,我发现我应该能够构建我计划基于 Nitrogen 为家庭使用的应用程序。

所以我遇到了 Nitrogen 教程、演示和文档,并开始基于自包含的 inets/nitrogen 站点进行一些测试。一切都很顺利,直到我想尝试从另一台 PC 访问我的新网站。当然,我必须先调整我的盒子才能将 wan 请求路由到 lan……但是经过一天的搜索、阅读和测试,我仍然卡住了……

我测试过的内容:

  • 使用 Intranet IP 地址或 localhost 从本地主机调用网站:OK
  • 从本地主机,访问静态页面和不同的“my_page.erl”路径:OK
  • 使用局域网地址从另一台 PC 访问:我可以使用wireshark 捕获以太网帧,但连接因超时而失败。
  • 使用 wan 地址从另一台 PC 访问:我可以使用 wireshark 捕获以太网帧(地址转换后),但连接因超时而失败。

wireshark 和 netstat 结果的屏幕截图

  • 使用 wan 地址从本地 PC 访问:我可以捕获以太网帧并使用wireshark,但连接因超时而失败。
  • 我在我的代码中放了一些 ?DEBUG 宏:但没有一个达到。
  • 我尝试访问静态文件:相同的行为。
  • 我使用 netstat -ap 检查了进程 beam.smp 正在侦听正确的端口:好的
  • 我使用 smartsniff 检查了外部 PC 上的响应帧:lan 和 wan 访问都没有响应。
  • 我测试了不同的端口和端口路由。

我必须错过一些明显的东西,为了使这项工作能够进行配置,是否需要进行一些配置?或者我可以做的测试?因为我没有更多的想法。

语境:

  • 在 Windows XP 32 上运行的浏览器 firefox 16.0.2 和 chromium 21.0.1138
  • 在 Ubuntu 12.04 上运行的服务器
  • 默认氮气/inets 应用程序(修改端口为 8020)
  • 二郎15B02
  • nprocreg, 0.2.0
  • 解析工具,2.0.7
  • 通用测试,1.6.2
  • 失忆症,4.7.1
  • ssl, 5.1
  • 公钥,0.16
  • 编译器,4.8.2
  • xmerl, 1.3.2
  • 运行时工具,1.8.9
  • 加密,2.2
  • 内茨,5.9.1
  • 萨斯勒,2.2.1
  • 标准库,1.18.2
  • 内核,2.15.2
0 投票
1 回答
185 浏览

erlang - 在 Nitrogen 网络服务器中设置文件下载的内容标头

我在 Nitrogen Webserver 上动态生成一个文件,并希望浏览器在下载对话框中显示文件名。

目前我正在设置这样的东西 -

这使浏览器可以要求保存文件,但文件的名称是url的名称(即氮erl页面)。

如何在内容上设置文件名,以便浏览器向用户显示相同的文件名?

我认为这样的事情可以在这样的基于 Java 的服务器中实现 -

我在偏航上使用氮气。

0 投票
1 回答
299 浏览

erlang - 如何在氮气/ inets erlang中管理多个用户

我正在使用 Nitrogen/Inets 为我的家庭使用构建一个简单的网站。只要我有一个连接到 Web 服务器的客户端,当前版本就可以按预期工作。

如果我尝试连接新用户,则 2 个会话似乎共享相同的状态变量:

  • 浏览器1:阅读索引页,点击连接,以user1登录。
  • 浏览器 2:读取索引页面,用户是 user1 --> 不正常 - 去登录并以 user2 身份输入。似乎还可以。
  • 浏览器 1:重新加载主页 --> 用户更改为 user2 --> 非常糟糕 :o(

此外,我还包括一个显示超时计数器的显示 -> 值在两个浏览器上同步。

你能告诉我我必须怎么做才能同时管理多个用户吗?我写的代码如下:

index.erl 的提取

login.erl 的摘录:

0 投票
1 回答
183 浏览

html - 氮气中音视频标签的使用

仍在我的个人网络服务器上工作,我试图在 Nitrogen 中使用 html5 音频和视频标签。

由于没有#audio和#video记录,我决定直接在氮气生成的页面中插入html文本,结果如​​下:

据我了解,这应该有效,因为音频标签应该由客户端浏览器直接解释,并且代码中没有任何氮 ID 或事件观察者。

但是当我从 Firefox 浏览这段代码时,我会短暂地看到控件打开,然后音频元素就消失了。

如果我复制粘贴由氮气生成的整个代码(显示html源页面,复制并粘贴到位于氮气项目来源的文件中)并使用浏览器打开它,它工作正常。相对路径是正确的,假设氮项目中的搜索统计。我也尝试过绝对路径,但没有成功。

我不知道

  • 如果它构建了一个格式为“.._.._My music_subdir_song.ogg”的文件名,就像氮为 url 分析所做的那样,
  • 或者如果它使用另一个目录来启动路径,
  • 或者如果它根本不像我想的那样工作。
  • ...

编辑:一些补充信息:

我做了以下更改:

在 site/static 目录中创建一个包含一些 ogg 文件的目录 + 在 site/static 中移动一个静态 test.html 文件。如果我直接打开 test.html -> ok。如果我从我的网站重定向-> 不行。

使用 Nitrogen 应用程序根目录的副本进行相同的测试,并从我的网站访问 -> 不行

由于网页上的信息不明确,我修改了 test.html 以访问我的 PC 上不存在的文件 -> 相同的行为。

我想我将使用调试器来了解如何管理请求,待续......

编辑2:

使用调试器,我可以验证 wf_core:run_catched() 是否被多次调用。第一次调用是在它处理我的页面中重定向到静态文件的事件时。

第二次处理静态html文件本身。

第三次处理路径等于 my_music/song.ogg 的 finish_static_request(),然后我在处理答案时迷失了方向。另一个 wf_core:run_catched() 被并行调用了,但我没有遵循它......

我已经能够验证该文件是否可以访问:我在 html 文件中添加了几个音频标签,并且我能够使用 DownloadHelper Firefox 插件“下载”现有文件。

我现在的理解是路径是正确的(至少当我将文件放在 site/static 的子目录中时),服务器能够检索文件并发送它们,浏览器识别音频和视频标签,但链接嵌入式音频/视频阅读器和文件之间的文件丢失了,尽管我在音频标签内添加了一个类型定义。

有继续的想法吗?

编辑3:

最后我得到了它。正如 Chops 建议的那样,我必须进入 inets 服务器配置,而不是定义路径,而是定义类型关联。我在 etc/inets_httpd.erlenv 中添加了以下定义,它可以工作。

:o)

0 投票
2 回答
244 浏览

erlang - 在氮框架中检索#dropdown 选择

我正在使用 erlang 氮气 web 框架来开发应用程序。

我一定遗漏了一些非常简单的东西,但我不知道如何检索#dropbox 元素所做的选择。回发消息似乎没有通过它。它可能需要使用 wf:wire/3 功能吗?

我还没有看到任何证明这一点的文档或示例。我能找到的唯一示例将仅显示回发值,该值不提供有关选择了哪个选项的任何信息。

0 投票
1 回答
354 浏览

erlang - 氮气服务器

我想知道哪台服务器最适合用于 Nitrogen Web 框架?在网站上列出的 5 个中,我已经删除了 Inets(不推荐用于生产)和 WebMachine。剩下的只有 Mochweb、Yaws 和 Cowboy。我还在网站上注意到 Nitrogen/Yaws Windows 二进制文件不可下载。有什么特别的原因吗?

0 投票
1 回答
1685 浏览

erlang - 节点未运行,氮气

在我输入bin/dev page foo并返回 shell的 shellNode is not running中,我检查了我的日志并注意到了这条消息epmd: epmd: node name already occupied nitrogen

然后,我在 shell 中输入epmd -names并返回

运行epmd -debug

我无法停止节点,当我尝试时它显然在数据库中处于活动状态

在 Eshell 中,我收到以下内容

有没有办法让 Eshell 识别这个节点,以便运行bin/dev function

0 投票
1 回答
350 浏览

http - 二郎氮气文件下载

我需要在我的氮气应用程序中提供文件下载功能。

原则上我需要像这样设置标题:

但现在我在 Nitrogen API 中找不到发送文件数据块的函数。

我需要分部分上传文件,因为它们可能非常大,除此之外,文件在本地存储中不可用,但二进制数据是从其他模块获取的。所以在实践中,我需要自己处理将数据块发送到 http 流。

任何想法或示例如何做到这一点,可以使用哪些 api 函数?

0 投票
2 回答
277 浏览

post - 如何从帖子参数中读取?

我需要解析文本文件。这个文件在 post param. 我有这样的代码:

接下来我该怎么办?如何解析它?

0 投票
1 回答
342 浏览

github - 从 github.com 在 Yaws 上制造氮气

我正在使用 Ubuntu 12.04LTS,所有软件都根据软件管理器实用程序进行了升级

我正在尝试使用来自nitrogenproject站点的偏航创建氮 应用

在编译阶段,我收到以下错误

然后编译继续,直到它因此错误而提前终止

我能做些什么?先感谢您!!