エラーの発生と対処
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は構文解析エラーのため、実行時エラーと違いプログラムが一文も実行されずに終了するということを学びました。(当たり前!とか言わないで。。)
コメント