Reputation: 1
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
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