SailsJS geeft 1 document terug als ik meerdere id's opgeef

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Struikrover
  • Registratie: Juni 2005
  • Laatst online: 16-10 09:01
Naar aanleiding van Struikrover in "De Devschuur Coffee Corner - Iteratie ➑":

Ik heb een SailsJS instance met middleware die om een of andere reden X, op de een of andere manier Y een aantal id's selecteert die de user mag zien als een URL wordt opgevraagd.

Laat de URL
code:
1
/data
zijn. De middleware stopt dan een aantal id's in het
req.options.where
object. Volgens de sails docs is dat een zogenaamde where criterium, vergelijkmaar met IN uit MySQL: http://sailsjs.org/#/docu...ts/ORM/Querylanguage.html

Wat er zou moeten gebeuren, volgens mij, is dat de find blueprint wordt aangeroepen, mijn documenten opzoekt, en het resultaat teruggeeft.

Wat er gebeurt is te danken aan wat legacy code, die staat
sails/lib/hooks/blueprints/actions/find.js
op regel 34:

JavaScript:
1
2
3
4
5
6
7
// If an `id` param was specified, use the findOne blueprint action
  // to grab the particular instance with its primary key === the value
  // of the `id` param.   (mainly here for compatibility for 0.9, where
  // there was no separate `findOne` action)
  if ( actionUtil.parsePk(req) ) {
    return require('./findOne')(req,res);
  }


Die functie checkt of het 'id' attribuut in het 'where' object zit, en roept dan direct de findOne functie aan. Lijkt me in dit geval niet de bedoeling.

Quote uit het Devschuur topic:
Gamebuster schreef op maandag 09 februari 2015 @ 15:04:
[...]

Weet je zeker dat het een bug van SailsJS is? Ik ben wel benieuwd nu. Ik kan me niet voorstellen dat zoiets "simpels" fout gaat.
Maak maar eens een middleware waar alleen dit in staat:
JavaScript:
1
2
3
module.exports = function (req, res, next) {
  req.options.where = {id: [array_van_ids]};
}


Natuurlijk moeten het id's zijn die bij je model passen, anders krijg je helemaal niks terug.

Als er een andere manier is om de id's te restricten die ik via een URL wil teruggeven dan word ik daar graag van op de hoogte gebracht door jullie, scheelt mij weer wachten op een bugfix van sails ;)

[ Voor 30% gewijzigd door Struikrover op 09-02-2015 16:30 ]