簡體   English   中英

“參數中缺少必需的鍵‘源’”

[英]“Missing required key 'Source' in params”

這是我的代碼:

const aws = require('aws-sdk')
const ses = new aws.SES()
// const myEmail = process.env.EMAIL
// const myDomain = process.env.DOMAIN
const getParamsFromUrl = require('./getParamsFromUrl')

module.exports = (options) => {
  const { myEmail, myDomain } = options

function generateResponse (code, payload) {
  return {
    statusCode: code,
    headers: {
      'Access-Control-Allow-Origin': myDomain,
      'Access-Control-Allow-Headers': 'x-requested-with',
      'Access-Control-Allow-Credentials': true
    },
    body: JSON.stringify(payload)
  }
}
function generateError (code, err) {
  console.log("hi"+ err)
  return {
    statusCode: code,
    headers: {
      'Access-Control-Allow-Origin': myDomain,
      'Access-Control-Allow-Headers': 'x-requested-with',
      'Access-Control-Allow-Credentials': true
    },
    body: JSON.stringify(err.message)
  }
}
function generateEmailParams (body) {
  const { email, name, content } = JSON.parse(body)
  console.log(email, name, content)
  if (!(email && name && content)) {
    throw new Error('Missing parameters! Make sure to add parameters \'email\', \'name\', \'content\'.')
  }
  return {
    Source: myEmail,
    Destination: { ToAddresses: [myEmail] },
    ReplyToAddresses: [email],
    Message: {
      Body: {
        Text: {
          Charset: 'UTF-8',
          Data: `Message sent from email ${email} by ${name} \nContent: ${content}`
        }
      },
      Subject: {
        Charset: 'UTF-8',
        Data: `You received a message from ${myDomain}!`
      }
    }
  }
}
async function sendJSON (event) {
    try {
      const emailParams = generateEmailParams(event.body)
      const data = await ses.sendEmail(emailParams).promise()
      return generateResponse(200, data)
    } catch (err) {
      return generateError(500, err)
    }
  }

return sendJSON

}

/////handler.js 


const options = {
  myEmail: process.env.EMAIL,
  myDomain: process.env.DOMAIN
}
const { sendJSON, sendFormEncoded } = require('./lambdaMailer')(options)
module.exports.sendJSON = sendJSON

我在secrets.json文件中定義了node_env和 email 的值。 運行 curl 鏈接后,我收到以下錯誤:

curl --header "Content-Type: application/json" --request POST --data "{\"source\":\"zyx@gmail.com\",\"destination\":\"abc@gmail.com\",\"name\":\"xyz\",\"subject\":\"Hey!\",\"message\":\"Hey!\"}" https://lyt7frokj4.execute-api.us-east-1.amazonaws.com/dev/email/send

"Missing required key 'Source' in params"

我認為這可能是區分大小寫的問題。 根據文檔,應該有Source ,而不是source

Source: 'STRING_VALUE', /* required */

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM