node.js - ".use" method to add logic on each request of SuperAgent -


this issue in superagent repository mentions .use method add logic on each request. example, adding authorization header jwt when token available:

superagent.use( bearer );  function bearer ( request ) {     var token = sessionstorage.get( 'token' );      if ( token ) request.set( 'authorization', 'bearer ' + token ); } 

although last comment informs feature working again, can't make work.

the following test code:

var request = require( 'superagent' );  request.use( bearer );  function bearer ( request ) {     // "config" global var token , other stuff resides     if ( config.token ) request.set( 'authorization', 'bearer ' + config.token ); } 

returns error:

request.use( bearer );         ^ typeerror: undefined not function 

the issue linked isn't linked commits, can speculate on whether or not feature implemented , removed, or never implemented in first place.

if read through src, see use ever defined on prototype of request constructor, meaning can ever used after you've began constructing request, as shown in readme.

in other words, issue seems talking feature either has been removed, or never existed. should instead use syntax mentioned in readme.

var request = require('superagent');  request .get('/some-url') .use(bearer) // affects **only** request .end(function(err, res){     // });  function bearer ( request ){     // "config" global var token , other stuff resides     if ( config.token ) {         request.set( 'authorization', 'bearer ' + config.token );     } } 

you of course create own wrapper don't have every request.

var superagent = require('superagent');  function request(method, url) {     // callback     if ('function' == typeof url) {         return new superagent.request('get', method).end(url).use(bearer);     }      // url first     if (1 == arguments.length) {         return new superagent.request('get', method).use(bearer);     }      return new superagent.request(method, url).use(bearer); }  // re-implement .get , .post helpers if feel they're important..  function bearer ( request ){     // "config" global var token , other stuff resides     if ( config.token ) {         request.set( 'authorization', 'bearer ' + config.token );     } }  request('get', '/some-url') .end(function(err, res){     // }); 

Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -