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