问题标签 [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.
erlang - 除了本地主机,我无法从任何机器访问氮气/inets 服务器
感谢这个论坛中的许多讨论,我发现我应该能够构建我计划基于 Nitrogen 为家庭使用的应用程序。
所以我遇到了 Nitrogen 教程、演示和文档,并开始基于自包含的 inets/nitrogen 站点进行一些测试。一切都很顺利,直到我想尝试从另一台 PC 访问我的新网站。当然,我必须先调整我的盒子才能将 wan 请求路由到 lan……但是经过一天的搜索、阅读和测试,我仍然卡住了……
我测试过的内容:
- 使用 Intranet IP 地址或 localhost 从本地主机调用网站:OK
- 从本地主机,访问静态页面和不同的“my_page.erl”路径:OK
- 使用局域网地址从另一台 PC 访问:我可以使用wireshark 捕获以太网帧,但连接因超时而失败。
- 使用 wan 地址从另一台 PC 访问:我可以使用 wireshark 捕获以太网帧(地址转换后),但连接因超时而失败。
- 使用 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
erlang - 在 Nitrogen 网络服务器中设置文件下载的内容标头
我在 Nitrogen Webserver 上动态生成一个文件,并希望浏览器在下载对话框中显示文件名。
目前我正在设置这样的东西 -
这使浏览器可以要求保存文件,但文件的名称是url的名称(即氮erl页面)。
如何在内容上设置文件名,以便浏览器向用户显示相同的文件名?
我认为这样的事情可以在这样的基于 Java 的服务器中实现 -
我在偏航上使用氮气。
erlang - 如何在氮气/ inets erlang中管理多个用户
我正在使用 Nitrogen/Inets 为我的家庭使用构建一个简单的网站。只要我有一个连接到 Web 服务器的客户端,当前版本就可以按预期工作。
如果我尝试连接新用户,则 2 个会话似乎共享相同的状态变量:
- 浏览器1:阅读索引页,点击连接,以user1登录。
- 浏览器 2:读取索引页面,用户是 user1 --> 不正常 - 去登录并以 user2 身份输入。似乎还可以。
- 浏览器 1:重新加载主页 --> 用户更改为 user2 --> 非常糟糕 :o(
此外,我还包括一个显示超时计数器的显示 -> 值在两个浏览器上同步。
你能告诉我我必须怎么做才能同时管理多个用户吗?我写的代码如下:
index.erl 的提取
login.erl 的摘录:
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)
erlang - 在氮框架中检索#dropdown 选择
我正在使用 erlang 氮气 web 框架来开发应用程序。
我一定遗漏了一些非常简单的东西,但我不知道如何检索#dropbox 元素所做的选择。回发消息似乎没有通过它。它可能需要使用 wf:wire/3 功能吗?
我还没有看到任何证明这一点的文档或示例。我能找到的唯一示例将仅显示回发值,该值不提供有关选择了哪个选项的任何信息。
erlang - 氮气服务器
我想知道哪台服务器最适合用于 Nitrogen Web 框架?在网站上列出的 5 个中,我已经删除了 Inets(不推荐用于生产)和 WebMachine。剩下的只有 Mochweb、Yaws 和 Cowboy。我还在网站上注意到 Nitrogen/Yaws Windows 二进制文件不可下载。有什么特别的原因吗?
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
?
http - 二郎氮气文件下载
我需要在我的氮气应用程序中提供文件下载功能。
原则上我需要像这样设置标题:
但现在我在 Nitrogen API 中找不到发送文件数据块的函数。
我需要分部分上传文件,因为它们可能非常大,除此之外,文件在本地存储中不可用,但二进制数据是从其他模块获取的。所以在实践中,我需要自己处理将数据块发送到 http 流。
任何想法或示例如何做到这一点,可以使用哪些 api 函数?
post - 如何从帖子参数中读取?
我需要解析文本文件。这个文件在 post param. 我有这样的代码:
接下来我该怎么办?如何解析它?
github - 从 github.com 在 Yaws 上制造氮气
我正在使用 Ubuntu 12.04LTS,所有软件都根据软件管理器实用程序进行了升级
我正在尝试使用来自nitrogenproject站点的偏航创建氮 应用
在编译阶段,我收到以下错误
然后编译继续,直到它因此错误而提前终止
我能做些什么?先感谢您!!