-1

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})
            })
          })
})
  })


})
})

2 番目の URL から 2 番目のユニレスト コールをレンダリングする方法がわかりません。私はほとんどの場合、2 番目の unirest api 呼び出しから情報をレンダリングしたいと考えていますが、両方の呼び出しを同じページにレンダリングできれば素晴らしいと思います。

4

1 に答える 1

0

私は自分の質問に対する答えを見つけました。私の問題は、.end 関数内に res.render を配置する必要があり、res.render 関数の 1 つだけを使用する必要があったことです。また、 res.render 関数を tunesDB.insert 関数の外に移動しました。

可能であれば、ルート間で変数を渡す方法を知りたいと思っていますが、これにより、少なくとも unirest api 呼び出しからの作業データが得られました。

于 2015-07-26T23:50:59.700 に答える