Helpful message when the web server cannot start listening.
This commit is contained in:
parent
1dcce05f98
commit
9e8ed150a3
@ -68,22 +68,47 @@ class $WebServer extends $EventEmitter
|
||||
|
||||
++@_notYetListening
|
||||
|
||||
# Helpful message.
|
||||
errorHandler = (error) ->
|
||||
# `address()` can only be used once listening.
|
||||
address = do ->
|
||||
return socket if socket?
|
||||
"#{host}:#{port}"
|
||||
|
||||
# Prints a (hopefully) helpful message if the server could not
|
||||
# listen.
|
||||
console.log "[WARN] WebServer could not listen on #{address}"
|
||||
switch error.code
|
||||
when 'EACCES'
|
||||
console.log ' Access denied.'
|
||||
if port < 1024
|
||||
console.log ' Ports < 1024 are often reserved to privileges users.'
|
||||
when 'EADDRINUSE'
|
||||
console.log ' Address already in use.'
|
||||
|
||||
# This server will never start listening.
|
||||
--@_notYetListening
|
||||
|
||||
# Registers the error handler.
|
||||
server.on 'error', errorHandler
|
||||
|
||||
server.once 'listening', =>
|
||||
# Removes the error handler.
|
||||
server.removeListener 'error', errorHandler
|
||||
|
||||
# Prints a helpful message.
|
||||
address = server.address()
|
||||
if $_.isObject address
|
||||
{address, port} = address
|
||||
address = "#{address}:#{port}"
|
||||
|
||||
console.log "WebServer listening on #{address}"
|
||||
|
||||
# If the web server is listening on all addresses, fire the
|
||||
# `listening` event.
|
||||
@emit 'listening' unless --@_notYetListening
|
||||
|
||||
# Forwards events to this object.
|
||||
$_.each $events, (event) =>
|
||||
server.on event, (args...) => @emit event, args...
|
||||
# Forwards events to this object.
|
||||
$_.each $events, (event) =>
|
||||
server.on event, (args...) => @emit event, args...
|
||||
|
||||
# Does not return anything.
|
||||
undefined
|
||||
|
Loading…
Reference in New Issue
Block a user