ButteryAvocado
ButteryAvocado

Reputation: 1

Error: Inline regex not working in koa-router (Unexpected "(" at 10)

I am trying to use an inline regular expression in a koa-router route parameter, but I am getting an error. Here’s my code:

import Koa from 'koa';
import Router from 'koa-router';

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

router.get('/hello/:id([0-9]{5})', (ctx) => {
  const id = ctx.params.id;
  console.log(id);
  ctx.body = `Hello ${id}`;
});

app.use(router.routes());
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

Error:
      throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}: ${DEBUG_URL}`);
              ^
TypeError: Unexpected [ at 11, expected END: https://git.new/pathToRegexpError
    at Iter.consume (C:\Users\User\Desktop\amagi-training\koa-router-new\node_modules\path-to-regexp\dist\index.js:123:15)
    at consume (C:\Users\User\Desktop\amagi-training\koa-router-new\node_modules\path-to-regexp\dist\index.js:179:16)
    at parse (C:\Users\User\Desktop\amagi-training\koa-router-new\node_modules\path-to-regexp\dist\index.js:183:20)
    at C:\Users\User\Desktop\amagi-training\koa-router-new\node_modules\path-to-regexp\dist\index.js:294:74
    at Array.map (<anonymous>)
    at pathToRegexp (C:\Users\User\Desktop\amagi-training\koa-router-new\node_modules\path-to-regexp\dist\index.js:294:25)
    at new Layer (C:\Users\User\Desktop\amagi-training\koa-router-new\node_modules\koa-router\lib\layer.js:54:39)
    at Router.register (C:\Users\User\Desktop\amagi-training\koa-router-new\node_modules\koa-router\lib\router.js:477:19)
    at Router.<computed> [as get] (C:\Users\User\Desktop\amagi-training\koa-router-new\node_modules\koa-router\lib\router.js:828:10)
    at file:///C:/Users/User/Desktop/amagi-training/koa-router-new/index.js:7:8

Older versions of koa-router works with this. I tried reinstalling everything. Tried installing the latest for everything.

Upvotes: 0

Views: 42

Answers (1)

Paranoia
Paranoia

Reputation: 1

This error occurs in the latest version 13.0.1. Tried to downgrade to 11.0.2 or 12.0.1 and solved the issue.

In package.json change: "koa-router": "11.0.2" and remember to remove the "^"

I have not check detailed on the document, maybe this changed to other syntax?

Upvotes: 0

Related Questions