Coder Social home page Coder Social logo

Unexpected route order about find-my-way HOT 5 CLOSED

delvedor avatar delvedor commented on September 27, 2024 1
Unexpected route order

from find-my-way.

Comments (5)

dcousens avatar dcousens commented on September 27, 2024

It may be that your /33 is static? And that has precedence?

from find-my-way.

dcousens avatar dcousens commented on September 27, 2024

That appears to be it.

function notFoundHandler () {}
function handler (req, res, params) {
    console.log(params)
}

const FindMyWay = require('find-my-way')

const a = new FindMyWay({ defaultRoute: notFoundHandler })
a.on('GET', '/:userId/foo/bar', handler)
a.on('GET', '/33/:a(^.*$)/:b', handler)
a.lookup({ url: '/33/foo/bar', method: 'GET', headers: {} }, () => {})
// { a: 'foo', b: 'bar' }

const b = new FindMyWay({ defaultRoute: notFoundHandler })
b.on('GET', '/foo/bar/:userId', handler)
b.on('GET', '/:a(^.*$)/:b/33', handler)
b.lookup({ url: '/foo/bar/33', method: 'GET', headers: {} }, () => {})
// { userId: '33' }

It probably tries to take "the most static route" possible.

from find-my-way.

mcollina avatar mcollina commented on September 27, 2024

yes that’s it. If the doc is unclear, would you mind sending a PR?

from find-my-way.

allevo avatar allevo commented on September 27, 2024

Thanks, I'll

from find-my-way.

delvedor avatar delvedor commented on September 27, 2024

This behavior is correct, we are matching every chunk between the slashes in order.

In particular the parametric routes go before the parametric ones with regexp.

This is true, but we run the check for every node in the current level and not the entire route.

from find-my-way.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.