Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript nodejs TypeError:无法读取属性';消息';未定义的_Javascript_Node.js_Aws Lambda - Fatal编程技术网

Javascript nodejs TypeError:无法读取属性';消息';未定义的

Javascript nodejs TypeError:无法读取属性';消息';未定义的,javascript,node.js,aws-lambda,Javascript,Node.js,Aws Lambda,我在AWS中有一个lambda函数。我使用它从RESTAPI检索信息。当我运行测试时,它返回一个200状态码,但返回一个“ERROR-TypeError:cannotread”属性未定义的“Message” 在smsResponder(/var/task/smsResponder.js:33:35)”中也显示了。我在谷歌上搜索过,并尝试使用.responseText 我的代码如下。我应该使用return还是类似的东西 'use strict' const AWS = require('aws-

我在AWS中有一个lambda函数。我使用它从RESTAPI检索信息。当我运行测试时,它返回一个200状态码,但返回一个“ERROR-TypeError:cannotread”属性未定义的“Message” 在smsResponder(/var/task/smsResponder.js:33:35)”中也显示了。我在谷歌上搜索过,并尝试使用.responseText

我的代码如下。我应该使用return还是类似的东西

'use strict'

const AWS = require('aws-sdk')
AWS.config.update({ region: process.env.AWS_REGION || 'us-east-1' })

const { getStock } = require('./getStock')
const KEYWORD = 'stock'

const validateStock = function (elementValue){
  let stockTest = AAPL
   return stockTest.test(elementValue)
}

const sendSMS = async function (params) {
    const pinpoint = new AWS.Pinpoint()
    console.log('sendSMS called: ', params)

    return new Promise((resolve, reject) => {
        pinpoint.sendMessages(params, function(err, data) {
            if(err) {
                console.error(err)
                reject(err)
            } else {
                console.log("Message sent. Data: ", data)
                resolve(data)
            }
        })
    })
}

const smsResponder = async (event) => {

    const msg = JSON.parse(event.Sns.Message)
    const msgWords = msg.messageBody.split(" ")

    // Check the first word of the text message is the keyword
    if (msgWords[0].toLowerCase() !== KEYWORD) return console.log('No keyword found - exiting')

    // Validate stock name and get price
    let message =''
    const stockCode = msgWords[1]

    if (validateStock(stockCode)) {
        message = await getStock(stockCode)
    } else {
        message = 'Invalid stock symbol - text me in the format "stock stocksymbol".'
    }

    // Send the SMS response
    const params = {
        ApplicationId: process.env.ApplicationId,
        MessageRequest: {
            Addresses: {
                [msg.originationNumber]: {
                    ChannelType: 'SMS'
                }
            },
            MessageConfiguration: {
                SMSMessage: {
                    Body: message,
                    MessageType: 'PROMOTIONAL',
                    OriginationNumber: msg.destinationNumber
                }
            }
        }
    }

    return console.log(await sendSMS(params))
}


module.exports = { smsResponder }

SNS事件的结构不同,它应该是
Event.Records[0].SNS.Message

以下是文件:


似乎在
smsResponder
中,
event.Sns
未定义的
,因此
event
没有
Sns
属性。