Dies ist die Situation:LoopBack acces ein anderes Modell
ich meine Datenbank mit 3 Modellen bekam:
Pokemon/PokemonType/Typ
A Pokemon durch die PokemonType einem oder mehreren Typen verknüpft ist.
So nun möchte ich eine Funktion, um die Typen der gegebenen Pokemon verbunden zu bekommen:
module.exports = function(Pokemon) {
Pokemon.types = function(id, cb){
var PokemonType = Pokemon.app.models.pokemonType.find();
var Type = Pokemon.app.models.type.find();
var arrayTypes = [];
// var result = app.models.pokemonType.find({where : {"pokemon_id": id}});
// for(var x in result){
// var typeId = x.pokemonType_id;
// var results = Type.find({where: {"id": typeId}});
// arrayTypes.push(results);
// }
cb(null, PokemonType[0] + " AND " + Type);
}
Pokemon.remoteMethod(
'types', {
accepts: {arg: 'id', type:'number', required:true, http: { source: 'header' }},
returns: {arg: 'types', type:'object' },
http: {path: '/types', verb: 'get', status: 200, errorStatus: 400}
}
);
};
Ich versuche, die Typen aus dem Ergebnis der PokemonType Tabelle zu finden. Wenn es also eine Zeile mit der aktuellen PokemonID gibt, möchte ich den Typ, der zu dieser PokemonType-Zeile gehört, aus der Type-Tabelle entfernen.
Wenn ich jedoch versuche, dies mit den Modellen zu tun, bekomme ich undefined und [Objekt Objekt].
Ich weiß, dass wenn ich Pokemon.find verwende, es die Tabelle verwendet, um nach dem Pokemon zu suchen, aber hat es dieselbe Instanz, wenn ich nach dem PokemonType mit der angegebenen PokemonID suche? Oder denke ich völlig falsch?
Was meine ich? Ich erwarte, dass dies:
Pokemon.find({where: { "id": id}});
aber mit der richtigen Antwort:
PokemonType.find({where :{ "pokemon_id": id}});
die gleichen wie handeln.
Wie behebe ich das undefinierte Problem? Und wie bekomme ich dann die richtigen Typen mit dem Pokemon verlinkt?