A module for attaching domains to request and response objects

npm install domain-http-server


A handy little decorator for adding domain functionality to your HTTP server's request and response objects.


var dhs = require('domain-http-server')

http.createServer(function (req, res) {
  dhs(req, res, { close: true, callback: errorHandler })
  // proceed to do stuff.

// express style

// close the server on errors
app.use(dhs.defaults({ close: true });

// call a specific callback on errors
app.use(dhs.defaults({ callback: errorHandler })


  • close Boolean, default=true. Close the server when there's an error, so that it stops accepting requests. This is handy when running as part of a cluster, so that unknown-state processes can be cleaned up and replaced.
  • enter Boolean, default=true. Enter the domain immediately, so that errors thrown in the server's request handler will be caught.
  • exit Boolean, default=true. Exit the domain when there's an error.
  • callback Function. A function that will be called when an error occurs.

Also, if the response has an error member which is a function, then it'll call that when there's an error.

If there's no res.error method, and there's no callback option, then it'll throw the error.


  • dhs(req, res, options, next) Attach the domain to the request and response. Options object is optional. next callback is there for the benefit of express-style middleware usage.
  • dhs.defaults(options) Return a dhs function that'll use the supplied options.
npm loves you