# RadSystems 9.2.0 generates Express 4 style routes incompatible with Express 5

**URL:** <https://forum.radsystems.io/t/radsystems-9-2-0-generates-express-4-style-routes-incompatible-with-express-5/2922>\
**Category:** NodeRad Vue\
**Created:** [April 21, 2026, 1:32pm UTC](https://forum.radsystems.io/t/radsystems-9-2-0-generates-express-4-style-routes-incompatible-with-express-5/2922 "2026-04-21T13:32:35Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![rha](https://forum.radsystems.io/letter_avatar_proxy/v4/letter/r/cdc98d/32.png) [@rha](https://forum.radsystems.io/u/rha)\
**Post date:** [April 21, 2026, 1:32pm UTC](https://forum.radsystems.io/t/radsystems-9-2-0-generates-express-4-style-routes-incompatible-with-express-5/2922/1 "2026-04-21T13:32:36Z")

</div>

Hi,

I’m using RadSystems Studio 9.2.0 to generate a Node.js backend.

According to the release notes, this version uses **Express 5** , but the generated controllers still contain route definitions that are compatible with **Express 4 only** , for example:

```auto
router.get(['/', '/index/:fieldname?/:fieldvalue?'], async (req, res) => {

```

This syntax uses optional parameters (`?`), which are no longer supported in Express 5 (due to changes in `path-to-regexp`).

As a result, the application crashes at startup with an error like:

```auto
PathError [TypeError]: Unexpected ? at index ...

```

To make it work, I have to manually rewrite the routes like this:

```auto
router.get('/', handler);
router.get('/index', handler);
router.get('/index/:fieldname', handler);
router.get('/index/:fieldname/:fieldvalue', handler);

```

So it seems there is a mismatch between:

- the Express version used (v5)

- and the route syntax generated by templates (Express 4 style)

### Suggestion

It would be great if:

- templates are updated to generate Express 5 compatible routes

- or an option is provided to select Express 4 vs Express 5 compatibility

Thanks!
