Node request context let you save any context per request and easily retrieve it

Downloads in past


8031.0.55 years ago6 years agoMinified + gzip package size for node-request-context in KB


npm version Build Status Known Vulnerabilities
Node Request Context
Node request context let you save any context per request and easily retrieve it. Read my blog post about building the package on Medium
Attention! This package is using the new async hooks API, which is available from Node 8.9.0, but still experimental. It is strongly recommended NOT to use in production environments.


npm install node-request-context


Node request context behaves pretty similar to continuation-local-storage.
const http = require('http');
const uuid = require('uuid');

// Create a namespace
const { createNamespace } = require('node-request-context');
const namespace = createNamespace('myapp.mynamespace');

http.createServer(function (req, res) {	
  // Wrap your request with => {
    const transactionId = uuid.v1();

    // Set any variable using the set function
    namespace.set('tid', transactionId);

    someAsyncFunc.then((data) => {

      // Get your variable using namespace.get 
      console.log('Some message', { transactionId: namespace.get('tid') });
    }).catch((err) => {
      console.log(err.message, { transactionId: namespace.get('tid') });


You can retrieve any context variable in any other file

const { getNamespace } = require('node-request-context');
const namespace = getNamespace('myapp.mynamespace');

class A {
  foo() {
    const tid = namespace.get('tid')


To run a working example
  1. Clone this repo
  2. Make sure node > 8.9.0 is installed
  3. Run npm run example
  4. Open another terminal tab and run curl localhost:8080


Guy Segev
Email | LinkedIn


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request