node.js - NodeJs - Refactored Authenticate middleware callback error -
i experiencing refactoring issue , cannot see how correct matter:
1. section of code, not refactored, works properly:
'use strict';   // use svcs when refactoring   var svcs = require('../../../services/ensure-authenticated.server.service'),    config = require('../../../config/config.server.config.js'),   ctrl = require('../../../controllers/index.server.controller'),   express = require('express'),   router = express.router();    // remove when refactoring   var jwt = require('jwt-simple');   var moment = require('moment');   // refactored  function ensureauthenticated(req, res, next) {     if (!req.headers.authorization) {         return res.status(401).send({message: 'please make sure request has authorization header'});     }     var token = req.headers.authorization.split(' ')[1];     var payload = jwt.decode(token, config.token_secret);     if (payload.exp <= moment().unix()) {         return res.status(401).send({message: 'token has expired'});     }     req.user = payload.sub;     next();}   module.exports = function(app){      router.route('/me')       // middleware change when refactored       .get(ensureauthenticated, ctrl.userctrl.getme)       .put(ensureauthenticated, ctrl.userctrl.putme);    app.use('/api', router);  }   2a. if refactor ensure authenticate:
'use strict';  var config = require('../config/config.server.config.js'); var jwt = require('jwt-simple'); var moment = require('moment');  var self = {   ensureauthenticated: function (req, res, next) {     if (!req.headers.authorization) {         return res.status(401).send({message: 'please make sure request has authorization header'});     }     var token = req.headers.authorization.split(' ')[1];     var payload = jwt.decode(token, config.token_secret);     if (payload.exp <= moment().unix()) {         return res.status(401).send({message: 'token has expired'});     }     req.user = payload.sub;     next();   } }  module.exports = self;   2b. route looking this:
'use strict'; var svcs = require('../../../services/ensure-authenticated.server.service.js'), ctrl = require('../../../controllers/index.server.controller.js'), express = require('express'), router = express.router();   module.exports = function(app, config){ router.route('/me')     .get(svcs, ctrl.userctrl.getme)     .put(svcs, ctrl.userctrl.putme); app.use('/api', router); }   i following error:
 error: route.get() requires callback functions got [object object]   the code has not changed in least, has refactored , cannot see why happening.
does see why happening , how correct?
many thanks.
silly mistake on part:
   .get(svcs.ensureauthenticated, ctrl.userctrl.getme)    .put(svcs.ensureauthenticated, ctrl.userctrl.putme);      
Comments
Post a Comment