JavaScriptの質問をしたり答えたりする掲示板

2019-01-29に作成

JavaScriptに関する質問を何でもしていい掲示板です。匿名での投稿も可能です。どんなことでもどしどし書き込んでください。回答もどなたでも自由にできます。僕も回答できる内容であれば必ず回答します!

質問は下記に沿って書いていただくと回答しやすくなります。

  • 実際のソースコードがある場合、可能な範囲で書いていただくと問題点を見つけやすくなります。
  • 実際に発生したエラーメッセージがある場合、コピペしていただくと問題解決につながる可能性が高いです。
  • 見た目上の問題の場合、スクリーンショットを貼ると状況が把握しやすくなります。

alexa-appでの実装なのですが。
node-fetchで別サーバからjsonを取得してres.say()で音声応答を返すのですが、
console.log()内ではjsonの内容を表示できるものの、
res.say()に渡すとstringじゃないよと怒られます。

const Alexa = require('alexa-app');
const app = new Alexa.app('Sample');
const fetch = require('node-fetch')


const averageResponse = (req, res) => {
  var num = req.slots['num'].value
  console.log(num)
  fetch('https://******',
    {
      method:'GET',
      headers: { 'Content-Type': 'application/json' }
    })
  .then((response)=>{
    if(response.status === 200){
      return response.json()
    }
  })
  .then((json)=>{
    console.log(json['averageTop10'][num - 1])
    //console.log(res)
    //var json = JSON.parse(data)
    try {
      if(num <= 10){
         //console.log(typeof(String(json.averageTop10[num - 1].average)))
        res.say(''+json.averageTop10[num - 1].average).shouldEndSession(true)
      }  

    } catch (error) {
      console.error(error)      
    }
  })
  .catch((err)=>{
    console.error(err);
  })

コメントアウトしてますが、String()コンストラクタやtoString()メソッドで型変換試してもエラーがキャッチできず、処理も正常に終わってないようなのでちょっと悩み中です。
↓このあたり怪しいなーとは思ってheaderはつけてみましたが変わらず。
str.replace is not a function

タグ

投稿月

最近コメントされた投稿