title: TypeError: app.use() requires middleware functions
body: <p>This is my server.js file and api.js file. I am getting an error in the sort function in which I intend to search the js objects according to their attributes.The event Schema has the attributes as name, location, price, rating. I tried to sort it according to their prices.</p>
  
  <p><strong>server.js</strong></p>
  
  <pre><code>var express= require('express');
  var bodyParser= require('body-parser');
  var morgan = require('morgan');
  var config=require('./config');
  var app= express();
  var mongoose=require('mongoose');
  //var User=require('./database/user')
  mongoose.connect('mongodb://localhost:27017/db',function(err){
      if(err){
          console.log(err);
      }
      else{
          console.log("connected!");
      }
  });
  
  app.use(bodyParser.urlencoded({extended: true })); //if false then parse only strings
  app.use(bodyParser.json());
  app.use(morgan('dev'));//log all the requests to the console
  var api=require('./app/routes/api')(app,express);
  app.use('/api',api);
  app.get('*',function(req,res){
      res.sendFile(__dirname + '/public/views/index.html');
  });   // * means any route
  
  app.listen(config.port,function(err){
      if(err){enter code here
          console.log(err);
      }
      else{
          console.log("The server is running");
      }
  });
  module.exports = router;
  </code></pre>
  
  <p><strong>api.js</strong></p>
  
  <pre><code>var User = require('../models/user');
  var Event = require('../models/event');
  var config = require('../../config');
  var secret = config.secretKey;
  
  module.exports = function (app, express) {
      var api = express.Router();
      app.use()
  
      api.post('/signup', function (req, res) {
          var user = new User({
              name: req.body.name,
              username: req.body.username,
              password: req.body.password
          });
          user.save(function (err) {
              if (err) {
                  res.send(err);
                  return;
              }
              res.json({
                  message: 'User created!'
              });
          });
  
      });
  
      api.get('/users', function (req, res) {
          User.find({}, function (err, users) {
              if (err) {
                  res.send(err);
                  return;
              }
              res.json(users);
          });
      });
  
      api.post('/eventfeed', function (req, res) {
          var event = new Event({
              name: req.body.name,
              location: req.body.location,
              description: req.body.description,
              price: req.body.price,
              rating: req.body.rating
          });
  
          event.save(function (err) {
              if (err) {
                  res.send(err);
                  return;
              }
              res.json({
                  message: 'Event created!'
              });
          });
      });
  
      // utility function for sorting an array by a key in alpha order
      api.get('/sortby_price', function (err) {
          if (err) return err;
              // utility function for sorting an array by a key in parsed numeric order
          else {
              function sortArrayNum(arr, key) {
                  arr.sort(function (a, b) {
                      return parseInt(a[key], 10) - parseInt(b[key], 10);
                  });
              }
  
              var dicts = EventSchema.saved;
              for (var i = 0; i &lt; dicts.length; i++) {
                  var terms = dicts[i].terms;
                  sortArrayNum(terms, "price");
              }
          }
          return api;
      });
  }
  </code></pre>
  
  <p>This is my error. I am making a webpage for the first time using this. Kindly help me what does this error tells.     </p>
  
  <blockquote>
    <p>TypeError: app.use() requires middleware functions<br>
       at EventEmitter.use (c:\Users\MY APY\WebstormProjects\Main\node_modules\express\lib\application.js:209:11)<br>
       at module.exports (c:\Users\MY LAPY\WebstormProjects\Main\app\routes\api.js:10:9)<br>
       at Object. (c:\Users\MY LAPY\WebstormProjects\Main\server.js:20:36)<br>
       at Module._compile (module.js:460:26)<br>
       at Object.Module._extensions..js (module.js:478:10)<br>
       at Module.load (module.js:355:32)<br>
       at Function.Module._load (module.js:310:12)<br>
       at Function.Module.runMain (module.js:501:10)<br>
       at startup (node.js:129:16)<br>
       at node.js:814:3</p>
  </blockquote>