parsing error unexpected token graphql が出た時の対応メモ

技術メモ

エラーの発生と対処

Amplify Functions(Lambda)でDynamoDBデータの取得を試みました。

const { GraphQLClient, gql } = require('graphql-request')
    const graphqlClient = () => {
      return new GraphQLClient(
        process.env.API_LEARNBOTAPI_GRAPHQLAPIENDPOINTOUTPUT,
        {
          headers: { 'x-api-key': process.env.API_LEARNBOTAPI_GRAPHQLAPIKEYOUTPUT },
        }
      )
    }


const query = gql`
  {
    listPhrases {
      items {
        id
        phrase
      }
    }
  }
`

exports.handler = async (event) => {
    
    const res = await graphql.request(query)
    console.log(res)

}

ただ、Lambdaを実行したところ以下のエラーが出ました。

parsing error unexpected token graphql

graphqlが定義されてないよねーと怒られています。以下を追記するとエラー解消。

const graphql = graphqlClient()

修正版↓

const { GraphQLClient, gql } = require('graphql-request')
    const graphqlClient = () => {
      return new GraphQLClient(
        process.env.API_LEARNBOTAPI_GRAPHQLAPIENDPOINTOUTPUT,
        {
          headers: { 'x-api-key': process.env.API_LEARNBOTAPI_GRAPHQLAPIKEYOUTPUT },
        }
      )
    }


const query = gql`
  {
    listPhrases {
      items {
        id
        phrase
      }
    }
  }
`

exports.handler = async (event) => {
    const graphql = graphqlClient() //追加
    const res = await graphql.request(query)
    console.log(res)

}

あとがき

parsing errorは構文解析エラーのため、実行時エラーと違いプログラムが一文も実行されずに終了するということを学びました。(当たり前!とか言わないで。。)

コメント

タイトルとURLをコピーしました