Javascript RingoJS httpserver引发BindException
我在RingoJS中遇到了一个非常奇怪的问题。考虑下面的代码保存在<代码> Me.js<代码>:Javascript RingoJS httpserver引发BindException,javascript,httpserver,ringojs,Javascript,Httpserver,Ringojs,我在RingoJS中遇到了一个非常奇怪的问题。考虑下面的代码保存在 Me.js: 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); 运
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/
如预期,显示默认的notfound
页面
现在考虑下面的代码,它与上面的代码相同,只是我硬编码了<代码>如果< /代码>条件为<代码>真< /代码>:
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已在使用
,并给出以下堆栈跟踪:
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吗?传入的请求将在脚本的第二个版本中重新执行主模块。我们之所以写“if(module==require.main)”,是有原因的,请参阅本页底部:传入的请求将在脚本的第二个版本中重新执行主模块。我们之所以写“if(module===require.main)”,是有原因的,请参见本页底部:@oberhamsi-不是module.exports
通过require
记忆并存储在缓存中?AFAIK即使您要求同一模块执行两次,它也只执行一次。@oberhamsi-请您写下您的评论作为回答,以便我可以接受吗?