Search code examples
javascriptnode.jskoa

Koajs, simple app not running on localhost


Following this basic tutorial on Youtube here: https://www.youtube.com/watch?v=AVkTv-NOpiQ

By localhost:3000 or :4444 isn't working, nothing showing up in browser or in post man. Not Found.

My app

const Koa = require('koa'),
      Router = require('koa-router')

const app = new Koa(),
      router = new Router()

let users = [
  {
    name: 'Leon Gaban',
    email: 'quxquz@gmail.com'
  },
  {
    name: 'Juan Gonzales',
    email: 'foobaz@gmail.com'
  },
  {
    name: 'Foo Bar',
    email: 'foobar@gmail.com'
  }
]

// ? Home Route
// router.get('/')

// ? GET user
router.get('/user:id', ctx => {
  ctx.body = users[ctx.params.id]
})

app
  .use(router.allowedMethods())
  .use(router.routes())
  .use(require('koa-body')())

app.listen(4444)

Thoughts? Not sure where I'm going wrong.


Solution

  • Correct the routing. It works

    const Koa = require('koa'),
          Router = require('koa-router')
    
    const app = new Koa(),
          router = new Router()
    
    let users = [
      {
        name: 'Leon Gaban',
        email: 'quxquz@gmail.com'
      },
      {
        name: 'Juan Gonzales',
        email: 'foobaz@gmail.com'
      },
      {
        name: 'Foo Bar',
        email: 'foobar@gmail.com'
      }
    ]
    
    // ? Home Route
    router.get('/', ctx => {
      ctx.body = "test"
    })
    
    // ? GET user
    router.get('/user/:id',  ctx => {
      ctx.body = users[ctx.params.id]
    })
    
    app
      .use(router.routes())
      .use(router.allowedMethods())
      .use(require('koa-body')())
    
    app.listen(4444)