这个问题与我之前的问题有关:
节点httpServer EADDRINUSE和下一个端口
目前,我这样做
var port = 8000; HTTPserver .listen(port, function() { console.log('HTTP listening:' + port); }) .on('error', function(err) { if (err.code === 'EADDRINUSE') { // port is currently in use console.log('server Open error:' + port); port++; HTTPserver .listen(port); } });
但是,当事情变得复杂时,这种代码结构难以管理,我更愿意按如下方式编写:
var port = 8000; HTTPserver .on('open', function() { console.log('HTTP listening:' + port); }) .on('error', function(err) { if (err.code === 'EADDRINUSE') { // port is currently in use console.log('server Open error:' + port); port++; HTTPserver.listen(port); } }); HTTPserver.listen(port);
这对我来说更直接,实际上在复杂情况下更容易处理.
但是,引用 http://nodejs.org/api/http.html似乎不存在"打开"事件.
有没有相应的事件,或者不可能这样写?
谢谢.
我想你正在寻找听力活动:
.on('listening', function() { console.log('HTTP listening:' + port); })