无服务器以合理的方式读取POST变量

时间:2017-11-23 23:39:12

标签: javascript node.js aws-lambda twilio serverless-framework

我在下面有以下无服务器lambda功能代码......

export function incoming_calls(event, context, callback) {
  var util = require("util");

  const VoiceResponse = require('twilio').twiml.VoiceResponse;
  const twiml = new VoiceResponse();

  //Determine message to give based on parameters given
  var theMessage = "Incoming Pool Service Leed";

  var querystring = require("querystring");
  var qMessage = querystring.stringify({message: theMessage});

  var whisperURL = "https://" + process.env.DOMAIN_NAME + "/twilio/whisper?" + qMessage;

  //twiml.say({ voice: 'woman' }, 'hello world!');
  twiml.dial({ record: 'true'}).number({url: whisperURL},'407-947-0503');
  //twiml.say({ voice: 'woman' }, 'This is a test!');

  //Useful Info
  var queryString = util.inspect(event.body);
  console.log("queryString="+queryString)
  sendemail("myemail@email.com","Incoming Call POST Request",queryString);

  callback(null, successXml(twiml.toString()));
}

此代码有效,并向我发送一封包含POST变量的电子邮件,但作为一个长字符串,如下所示......

'Called=%2B15622222222&ToState=CA&CallerCountry=US&Direction=inbound&CallerState=CA&ToZip=90670&CallSid=CA47e5131dd5e7375190aaf5fab773a9b0&To=%2B15622221234&CallerZip=92606&CallerName= ...等

如何将我从Twilio接收的POST参数转换为更好的格式,可能是数组或对象而不是字符串?

1 个答案:

答案 0 :(得分:3)

返回的字符串看起来像一个简单的查询字符串,因此您可以parse the query string in vanilla js或尝试使用另一种方法而不是list=['samAsl-----$34.95andkjkdsfaskjjlkjroseDkfj----$38.99','samAsl-----$31.95andkjkdsfaskjjlkjroseDkfj----35.99'] 来获取所需的值。