Helpful message when the web server cannot start listening.

This commit is contained in:
Julien Fontanet 2013-12-29 10:08:56 +01:00
parent 1dcce05f98
commit 9e8ed150a3

View File

@ -68,13 +68,38 @@ 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