首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RingoJS httpserver抛出BindException

RingoJS httpserver抛出BindException
EN

Stack Overflow用户
提问于 2013-01-01 00:32:36
回答 1查看 143关注 0票数 0

我在RingoJS中遇到了一个非常奇怪的问题。考虑一下保存在main.js中的以下代码

代码语言:javascript
复制
var {Application} = require("stick");
var {main} = require("ringo/httpserver");
var app = exports.app = new Application;
app.configure("error", "notfound");
if (module === require.main)
    main(module.id);

运行ringo main.js会按预期启动http://localhost:8080/上的http服务器,并显示默认的notfound页面。

现在考虑以下代码,除了我将if条件硬编码为true之外,它与上面的代码相同

代码语言:javascript
复制
var {Application} = require("stick");
var {main} = require("ringo/httpserver");
var app = exports.app = new Application;
app.configure("error", "notfound");
if (true) main(module.id);

运行ringo main.js会启动http服务器,但在打开站点时,它会显示一个error页面,而不是notfound页面。它显示为Wrapped java.net.BindException: Address already in use,并给出以下堆栈跟踪:

代码语言:javascript
复制
at ringo/httpserver.js:327 (Server)
at ringo/httpserver.js:428 (init)
at ringo/httpserver.js:506 (main)
at /home/aaditmshah/main.js:5
at ringo/jsgi/connector.js:28 (handleRequest)

发生什么事了呢?if条件对服务器有何影响?毕竟,这两个条件都表示值true (这就是http服务器工作的原因)。这让我非常困惑。这是个bug吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-19 17:21:16

传入的请求将在脚本的第二个版本中重新执行主模块。我们写"if (module === require.main)“是有原因的,请看页面的底部:http://ringojs.org/tutorial/httpserver.md

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

https://stackoverflow.com/questions/14103906

复制
相关文章

相似问题

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