title: Next is not a function when trying to call an API endpoint
body: <p>Building an API in node.js with Koa and i'm getting an error <code>TypeError: next is not a function</code> I'm using <code>koa</code> and <code>koa-mount</code> to modularize my API. I  have two files.</p>
  
  <p><code>App.js</code>:</p>
  
  <pre><code>const Koa = require('koa')
  const cors = require('@koa/cors')
  const mount = require('koa-mount')
  const logger = require('koa-logger')
  const bodyParser = require('body-parser')
  const price = require('./routes/price')
  const margin = require('./routes/margin')
  const position = require('./routes/position')
  
  
  const main = async () =&gt; {
  
    const app = new Koa()
  
    // Parse incoming requests data
    app.use(bodyParser())
    app.use(logger())
  
    app.use(cors({
      credentials: true
    }))
  
    app.use(async (ctx, next) =&gt; {
      try {
        await next()
      } catch (err) {
        ctx.status = err.status || 500
        ctx.body = err.message
        ctx.app.emit('error', err, ctx)
      }
    })
  
  
    app.use(mount('/position', await position()))
    app.use(mount('/price', await price()))
    app.use(mount('/margin', await margin()))
  
    return app
  }
  
  if (require.main === module) {
    main().then(
      (app) =&gt; app.listen(3000), console.log(`Listening On Port ${3000}`)
    )
  }
  </code></pre>
  
  <p>&amp; the file including the endpoint</p>
  
  <pre><code>// Import the WebFramework for routing
  const Koa = require('koa')
  const route = require('koa-route')
  const bitmexAPI = require('../keys')
  
  module.exports = async () =&gt; {
      const app = new Koa()
  
      app.use(route.get('/open', async (ctx) =&gt; {
  
          //Get Positions
          console.log("yes")
  
          const position = await bitmexAPI.Position.get()
          console.log(res)
  
          // //Response
          ctx.status = 200
          ctx.body = {
              tx: res.json({ success: true, data: position})    
          } 
  
      }))
      return app
  }
  </code></pre>
  
  <p>It's meant to be a super simple API. I'm using <code>postman</code> to test this but it's returning a internal server error and the console is giving this out: </p>
  
  <pre><code> TypeError: next is not a function
        at urlencodedParser (/Users/lrodriguez/Desktop/Personal/BitmexTracker/node_modules/body-parser/lib/types/urlencoded.js:91:7)
        at /Users/lrodriguez/Desktop/Personal/BitmexTracker/node_modules/body-parser/index.js:111:7
        at jsonParser (/Users/lrodriguez/Desktop/Personal/BitmexTracker/node_modules/body-parser/lib/types/json.js:110:7)
        at bodyParser (/Users/lrodriguez/Desktop/Personal/BitmexTracker/node_modules/body-parser/index.js:109:5)
        at dispatch (/Users/lrodriguez/Desktop/Personal/BitmexTracker/backend/node_modules/koa-compose/index.js:42:32)
        at /Users/lrodriguez/Desktop/Personal/BitmexTracker/backend/node_modules/koa-compose/index.js:34:12
        at Application.handleRequest (/Users/lrodriguez/Desktop/Personal/BitmexTracker/backend/node_modules/koa/lib/application.js:151:12)
        at Server.handleRequest (/Users/lrodriguez/Desktop/Personal/BitmexTracker/backend/node_modules/koa/lib/application.js:133:19)
        at Server.emit (events.js:189:13)
        at parserOnIncoming (_http_server.js:676:12)
  </code></pre>