One of the best practices around promises is to use existing npm libraries that return promises, rather than trying to write custom promisify adapters. Here's an npm module that could be used to replace request with something that returns a promise: https://github.com/request/request-promise