情况就是这样:
我的数据库有3个模型:
宠物小精灵/宠物小精灵类型/类型
宠物小精灵通过PokemonType链接到一个或多个类型。
所以现在我想要一个函数来获取链接到给定Pokemon的类型:
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}
}
);
};
我正在尝试从PokemonType表的结果中找到类型。因此,如果当前PokemonID有1行,我希望属于此PokemonType行的类型不在Type表中。
然而,当尝试使用模型执行此操作时,我一直未定义和[object Object]。
我知道如果我使用Pokemon.find,它会使用该表来搜索Pokemon,但是如果我使用给定的PokemonID搜索PokemonType,它是否具有相同的实例?或者我认为完全错了?
我的意思是什么?我期待这个:
PokemonType.find({where :{ "pokemon_id": id}});
表现如下:
Pokemon.find({where: { "id": id}});
但是答案正确。
如何修复未定义的问题?然后我如何获得与口袋妖怪相关联的正确类型?