Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Same resource nested and un-nested -> double call to auto-load #50

Open
Spiralis opened this Issue · 2 comments

3 participants

Ronny Hanssen Michael Succi Wanbok Choi
Ronny Hanssen

Hi,

I have two resources, Collections and Teams, that I am exposing using express-resource, like this:

var competitions = app.resource("competitions", require('./resources/competitions'));
var teams        = app.resource("teams",        require('./resources/teams'));
competitions.add(teams);

Teams is then a nested resource within it's parent competition, which is as I wanted it to be. However, I also wanted teams to be accessible as it's own resource. In other words, like this:

/competitions/:id/teams/:id
/teams/:id

So, to get this I changed the code as follows:

var competitions = app.resource("competitions", require('./resources/competitions'));
var teams        = app.resource("teams",        require('./resources/teams'));
competitions.add(teams);
teams = app.resource("teams", require('./resources/teams'));

I don't know if this is the way it is supposed to be set up, but this actually works. There is only one small problem. I have an auto-load method setup for the team-resource, and when I access the /teams/:id resource it actually ends up calling the auto-load twice. I guess that somehow it fires for both the teams/.id and the competitions/:id/teams/:id resource?

Any ide on how to avoid this from happening?

Michael Succi

I ran into this as well. I used the express-resource map function to manually define my non-nested routes . I don't use the auto-load functionality but you could give this method a shot if you're still running into this issue.

tenant.map( 'del', '/:tenant', tenantModule.destroy );
tenant.map( 'get', '/:tenant', tenantModule.show );
tenant.map( 'put', '/:tenant', tenantModule.update );

location.add( tenant );
Wanbok Choi

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.