The same debugging package that is available on the client side is available on the server as well.
The debugging option can be turned on with a Node environmental variable.
To get started with debugging on the server side, you will need to have Node and Socket.IO installed and an existing app that uses Socket.IO. To test this out, you can easily use any of the apps we built in the previous recipes in this chapter.
To get server-side debugging turned on, follow these steps:
To enable debugging at the time when you start your server, simply include the
DEBUG
environmental variable as the first argument when you start your Node server, as shown in the following code:DEBUG=* node server
If you would like to persist the
DEBUG
environmental variable without the need to pass it every time you start your Node server, you can export it ahead of time using the following code:export DEBUG=*
Now, when you start your server, verbose logging will be used with the following code:
node server
You can always update the
DEBUG
variable or even remove it completely by setting it to null, which will suppress logging entirely, as shown in the following code:export DEBUG=null
Node.js environmental variables are available in process.env
in any running Node process. They are often used to set up server-specific configurations, such as database connections and third-party credentials.
The great thing about using environmental variables to define the logging verbosity is that most cloud-based hosting providers allow you to change environmental variables on the fly, so you can easily toggle logging on or off without having to redeploy your code.
Similar to client-side logging, you can set the logging type to something other than the wildcard. This allows you to only get debugging messages on the topic you want to listen to.
For example, listening for XHR requests is as simple as passing it to the environmental variables when you start your Node server with the following code:
DEBUG=socket.io:server node server