route.get() requires callback functions but got a object undefined at route.(anonymous function)

I checked and tried similar questions like this,but didn't fix the issue.I'm getting route.get() requires callback functions but got a object undefined at route.(anonymous function)
drug.server.policy.js
 'use strict';

    /**
     * Module dependencies
     */
    var acl = require('acl');

    // Using the memory backend
    acl = new acl(new acl.memoryBackend());

    /**
     * Invoke Drugs Permissions
     */
    exports.invokeRolesPolicies = function () {
      acl.allow([{
        roles: ['admin'],
        allows: [{
          resources: '/api/drugs',
          permissions: '*'
        }, {
          resources: '/api/drugs/:drugId',
          permissions: '*'
        }]
      }, {
        roles: ['user'],
        allows: [{
          resources: '/api/drugs',
          permissions: ['get', 'post']
        }, {
          resources: '/api/drugs/:drugId',
          permissions: ['get']
        }]
      }, {
        roles: ['guest'],
        allows: [{
          resources: '/api/drugs',
          permissions: ['get']
        }, {
          resources: '/api/drugs/:drugId',
          permissions: ['get']
        }]
      }]);
    };

    /**
     * Check If Drugs Policy Allows
     */

    exports.isAllowed = function (req, res, next) {
      var roles = (req.user) ? req.user.roles : ['guest'];

      // If an Drug is being processed and the current user created it then allow any manipulation
      if (req.drug && req.user && req.drug.user && req.drug.user.id === req.user.id) {
        return next();
      }

      // Check for user roles
      acl.areAnyRolesAllowed(roles, req.route.path, req.method.toLowerCase(), function (err, isAllowed) {
        if (err) {
          // An authorization error occurred
          return res.status(500).send('Unexpected authorization error');
        } else {
          if (isAllowed) {
            // Access granted! Invoke next middleware
            return next();
          } else {
            return res.status(403).json({
              message: 'User is not authorized'
            });
          }
        }
      });
    };
drug.server.routes.js
'use strict';

/**
 * Module dependencies
 */
var drugsPolicy = require('../policies/drugs.server.policy'),
  drugs = require('../controllers/drugs.server.controller');

module.exports = function(app) {
  // Prescriptions Routes

  app.route('/api/drugs').all(drugsPolicy.isAllowed)
    .get(drugs.list)
    .post(drugs.create);

  app.route('/api/drugs/:drugId').all(drugsPolicy.isAllowed)
    .get(drugs.read)
    .put(drugs.update)
    .delete(drugs.delete);

  // Finish by binding the DrugPrescription middleware
  app.param('drugId', drugs.drugByID);
};
drugs.server.controller.js
 'use strict';

    /**
     * Module dependencies.
     */
    var path = require('path'),
      mongoose = require('mongoose'),
      Drug
 = mongoose.model('Drug'),
      errorHandler = require(path.resolve('./modules/core/server/controllers/errors.server.controller')),
      _ = require('lodash');

    /**
     * Create a Drug
     */
    exports.create = function(req, res) {
      var drug = new Drug(req.body);
      drug.user = req.user;

      drug.save(function(err) {
        if (err) {
          return res.status(400).send({
            message: errorHandler.getErrorMessage(err)
          });
        } else {
          res.jsonp(drug);
        }
      });
    };

    /**
     * Show the current Drug
     */
    exports.read = function(req, res) {
        // convert mongoose document to JSON
      var drug = req.drug ? req.drug.toJSON() : {};

        // Add a custom field to the Article, for determining if the current User is the "owner".
        // NOTE: This field is NOT persisted to the database, since it doesn't exist in the Article model.
      drug.isCurrentUserOwner = req.user && drug.user && drug.user._id.toString() === req.user._id.toString();

      res.jsonp(drug);
    };

    /**
     * Update a Drug
     */
    exports.update = function(req, res) {
      var drug = req.drug;

      drug = _.extend(drug, req.body);

      drug.save(function(err) {
        if (err) {
          return res.status(400).send({
            message: errorHandler.getErrorMessage(err)
          });
        } else {
          res.jsonp(drug);
        }
      });
    };

    /**
     * Delete an Drug
     */
    exports.delete = function(req, res) {
      var drug = req.drug;

      drug.remove(function(err) {
        if (err) {
          return res.status(400).send({
            message: errorHandler.getErrorMessage(err)
          });
        } else {
          res.jsonp(drug);
        }
      });
    };

    /**
     * List of Drug
     */
    exports.list = function(req, res) {
      Drug.find().sort('-created').populate('user', 'displayName').exec(function(err, drugs) {
        if (err) {
          return res.status(400).send({
            message: errorHandler.getErrorMessage(err)
          });
        } else {
          res.jsonp(drugs);
        }
      });
    };

    /**
     * Drug middleware
     */
    exports.drugByID = function(req, res, next, id) {

      if (!mongoose.Types.ObjectId.isValid(id)) {
        return res.status(400).send({
          message: 'Drug is invalid'
        });
      }

      Drug.findById(id).populate('user', 'displayName').exec(function (err, drug) {
        if (err) {
          return next(err);
        } else if (!drug) {
          return res.status(404).send({
            message: 'No Drug with that identifier has been found'
          });
        }
        req.drug = drug;
        next();
      });
    };
Stack Link:http://stackoverflow.com/questions/43830988/route-get-requires-callback-functions-but-got-a-object-undefined-at-route-ano

Comments

Popular posts from this blog

cannot find java exe neither null jre bin java exe nor null bin java exe exists(iReport)

Google Drive API (oauth 2.0) Upload Files Java

CSRF - Double Submit Cookie