gpt4 book ai didi

node.js - 需要解析SQS消息

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:54 28 4
gpt4 key购买 nike

当我收到消息时,我在解析 AWS SQS 消息时遇到一些问题。

我的主要问题是,虽然它看起来有点像字符串,但它也想表现得像一个对象。

到目前为止,我只是尝试解析该消息,因此它有很多 console.log()typeof

sqs.receiveMessage(params, (err, data) => {
if (err) console.log(err, err.stack);
else {
messages = data;
console.log(typeof messages.Messages[2].Body); // #2
let validMessage = JSON.parse(messages.Messages[2].Body); // #1
console.log(`validMessage: ${validMessage}`); // Just doesn't print out
console.log(typeof validMessage); // Errorr with #1
console.log(messages.Messages[2]); // gives #3 below
}
});

1:

SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)

2:

字符串

3:

{ MessageId: '2afe328d-0b23-4f21-82c5-47563cd994ef',
ReceiptHandle:
'AQEB4Giu1whgf6He9cJZVCNBzyfbIPPWlS5HOMLwsyC2lLODJbOudVIdLAx0R9U//XHP9CFr1xhycGzdFXPM1gkHRFf004G1AyqkuB1VPRd/RoQGDcJ9yiKw94b6L7i4VWqbCGdr0Dnz0IMw7ze+C69lE1+TD02L28crHscx+IuWdGKpFq79lOJjpbXfmYv4LP/m1fG3aWyRphKkgtFT/eOCpzqLbGn1Gq6h8RBxo7rexGW5SiNw9F/gVPVTpAWuJolOXv9duAzu8FF7rMnBl2bFjEbLirDtg1RwZtXdG64YsJF2pVwlWrAsx26W06GJocXI',
`MD5OfBody: '1441a7909c087dbbe7ce59881b9df8b9',`
`Body: '[object Object]' } `

我不确定我做错了什么,以及为什么它不能正常工作。消息的 Body 中只有两个属性:email 和 token。我想访问两者。

至于预期结果,我希望能够通过执行 console.log(messages.Messages[i].Body.email) 访问电子邮件,并且它应该等于 john.doe@example.com

最佳答案

为了重现您的情况,我执行了以下操作:

  • 已创建 Amazon SQS 队列
  • 使用 aws sqs send-message --queue-url ... --message-body foobar 向队列发送消息
  • 通过代码检索消息

我是Python人而不是Node,但总体思路应该是一样的:

import boto3

client=boto3.client('sqs',region_name='ap-southeast-2')

response = client.receive_message(QueueUrl='https://sqs.ap-southeast-2.amazonaws.com/743112987576/stack')
print (response)
print (response['Messages'][0]['Body'])

格式化的响应是:

{
u'Messages': [
{
u'Body': 'foobar',
u'ReceiptHandle': '...',
u'MD5OfBody': '...',
u'MessageId': '...'
}
],
'ResponseMetadata': {...}
}

最终的输出是foobar

Node SDK 的处理方式可能有点不同,您可能需要将字符串转换为 JSON 对象。

关于node.js - 需要解析SQS消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54642220/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com