我如何获得嵌套的unirest访问2个不同的api url来同时在页面上呈现,或至少第二个unirest呈现请求?

时间:2015-07-26 00:40:51

标签: express unirest



router.post('/', function(req, res, next) {
      console.log('req.body from root', req.body)
      var tuneName = req.body.name // what is entered by user
      var tune = encodeURIComponent(tuneName)
      console.log('tune', tune)
      var tuneUrl = 'https://thesession.org/tunes/search?q=' + tune + '&format=json'
      console.log('tuneUrl', tuneUrl)
    
      // Get first unirest call to session.org with tune entered by user
        unirest.get(tuneUrl)
        .end(function (response) {
          console.log('response from unirest', response.body.tunes[0])
    
          _id = response.body.tunes[0]
          console.log('_id', _id)
  
            // first render
            res.render('tunes', { tunesSess: response.body.tunes[0]})
            console.log('id', response.body.tunes.id)
    
          // 2nd unirest call to session.org to get key
            var tuneUrlKey = 'https://thesession.org/tunes/' + tuneOnly.id + '?format=json'
            unirest.get(tuneUrlKey)
            .end(function (response) {
              console.log('key', response.body.settings[0].key)
              res.render('tunes', {tuneSessKey: response.body.settings[0], response.body.settings[0].key})
            })
          })
})
  })


})
})




不确定如何从第二个网址呈现第二个最不正常的电话。我主要想要从第二个unirest api调用中呈现信息,尽管如果我可以将两个调用都呈现在同一页面上会很棒。

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案。我的问题在于我需要在.end函数中使用res.render并且只有一个res.render函数,我有两个。我还在我的tunesDB.insert函数之外移动了res.render函数。

如果有可能的话,我仍然想知道如何在路由之间传递变量,但这至少让我从我的unirest api调用中获取了工作数据。