一次向api发出多个请求,并将结果显示到模板视图引擎

我刚刚开始学习API。我在这个问题上绊脚石。 我的目标:我很想同时对Marvel API进行两次调用。第一次调用将获取有关字符及其ID的所有数据,然后将它们捆绑到一个变量中,并将其保存在数据库中。现在,第二个调用将获取所有漫画数据,并将这些数据嵌入到第一个调用中创建的角色对象。现在,我有了这个完整的字符变量。然后,我可以将其发送到视图引擎。但是我不知道该怎么做。有没有更简单的方法来解决这个问题?你们能告诉我我在做什么错吗...

//Mongoose model set up for Thumbnail > path,and extension
var Schema = mongoose.Schema;
var thumbnailSchema = new Schema({
    path: "String",extension: "String"
});
var thumbnailPath = mongoose.model('thumbnailPath',thumbnailSchema);


//Mongoose model set up for Comics
var Schema = mongoose.Schema;
var comicsSchema = new Schema({
    title: "String",imagePath: [thumbnailSchema]
});
var Comics = mongoose.model('Comics',comicsSchema);

//Mongoose model set up for Character
var Schema = mongoose.Schema;
var characterSchema = new Schema({
    id: "Number",name: "String",description: "String",imagePath: [thumbnailSchema],comicsPath: [comicsSchema]
});
var Character = mongoose.model('Character',characterSchema);

 //Create POST 
app.post('/',function(request,response){
var characterData = request.body.character;
var url = "https://gateway.marvel.com/v1/public/characters?name=" + characterData + "&ts=thor&apikey=PRIVATe"
    Request(url,function(error,res,body){
            var apiData = JSON.parse(body)
            if(!error && res.statusCode == 200){
            var newCharacter = Character ({
                id: apiData.data.results[0].id,name: apiData.data.results[0].name,description: apiData.data.results[0].description
            });
                newCharacter.imagePath.push({
                path: apiData.data.results[0].thumbnail.path,extension:                          apiData.data.results[0].thumbnail.extension
            });
        } else {
            var characterID = newCharacter.id
            var comicsURL = "https://gateway.marvel.com/v1/public/characters/" + characterID + "/comics?limit=5&ts=thor&apikey=PRIVATE";
            Request(comicsURL,body){
                if(!error && res.statusCode == 200){
                    var comicsData = JSON.parse(body)
                    var newComics =  Comics({
                        title: comicsData.data.results[0].title,});
                        newComics.imagePath.push({
                        path: comicsData.data.results[0].thumbnail.path,extension:comicsData.data.results[0].extension
                    });
                        newCharacter.imagePath.push({newComics})
                        console.log(newComics);
                }
            })
        }
    })
});

ning61 回答:一次向api发出多个请求,并将结果显示到模板视图引擎

每个人...我设法通过使用请求承诺 https://github.com/request/request-promise库来简化此工作。现在,从API中搜索的角色以及漫画一起出现。我可以将其保存到变量中,然后将其保存到数据库中进行存储;那是在后台发生的。完成后,我们可以希望将其成功传递(将看到)到模板引擎进行查看。供将来参考... code code2

本文链接:https://www.f2er.com/3127519.html

大家都在问